テンプレートで Bootstrap DateTime ウィジェットを使用しています。必要に応じて特定の日付、時間、または月の範囲を選択するために、2 つのウィジェット (From、To) を並べて配置しました。ユーザーが常に「From」よりも小さい「To」範囲を選択できるように、両方のウィジェットをリンクしました。その目的のために、次のような数値で日付を加算または減算しました。
var evDate = ev.date;
if (evDate != null) {
$('.'+reportCategoryTo.id).
datetimepicker('setStartDate', evDate);
var evDateObject = new Date(evDate.valueOf());
var reportDateTimeCategoryFrom = report_date_time_category[0][0];
var reportDateTimeCategoryTo = report_date_time_category[1][0];
if (reportDateTimeCategoryFrom.category.indexOf("Daily") !== -1) {
var newDate = evDateObject.setDate(evDateObject.getDate() + 31);
}
else if (reportDateTimeCategoryFrom.category.indexOf("Monthly") !== -1) {
var newDate = evDateObject.setDate(evDateObject.getDate() + 365);
}
else {
var newDate = evDateObject.setDate(evDateObject.getHours() + 24);
}
var newDateObject = new Date(newDate);
$('.'+reportCategoryTo.id).
datetimepicker('setEndDate', newDateObject);
}
else {
console.log('The change is null',evDate);
$('.'+reportCategoryTo.id).
datetimepicker('setStartDate', null);
$('.'+reportCategoryTo.id).
datetimepicker('setEndDate', null);
}
});
これは、ユーザーが 5 月 30 日などを選択した場合の範囲を示しません。次に、Datejs
日付などの加算または減算に役立つことがわかりました。次のようにDatejsを使用しました。
if (reportDateTimeCategoryFrom.category.indexOf("Daily") !== -1) {
var newDate = evDateObject.setDate(evDateObject.getDate().add(31).days());
}
else if (reportDateTimeCategoryFrom.category.indexOf("Monthly") !== -1) {
var newDate = evDateObject.setDate(evDateObject.getDate().add(365));
}
else {
var newDate = evDateObject.setDate(evDateObject.getHours().addHours(24));
しかし、私のコンソールはこのエラーを表示します:
TypeError: evDateObject.getDate(...).add is not a function
ファイルをインポートしましたdate.js
が、それでも機能しません。助けてください!