我在模板中使用 Bootstrap DateTime 小部件,我并排放置了 2 个小部件(从、到),以根据需要选择特定范围的日期、小时或月份。我已链接这两个小部件,以便用户始终可以选择小于“从”范围的“到”范围。为此,我添加或减去了日期,例如:
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
文件,但即便如此,这也不起作用。请帮忙!
最佳答案
Datejs已被放弃,我不推荐使用它。 Read here .
您可能需要考虑Moment.js ,它还有日期时间算术函数。
例如:
var m = moment(evDateObject.getDate());
m.add('months', 1);
evDateObject.setDate(m.toDate());
关于javascript - 如何在 Bootstrap 日期时间小部件中添加或减去日期、天、月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17120941/