Javascript 如何在bootstrap datetime小部件中添加或减去日期、天、月?
我在我的模板中使用了一个引导DateTime小部件,我将两个小部件并排放置,以根据需要选择特定的日期、小时或月份范围。我已经链接了这两个小部件,所以用户可以总是选择To范围小于From范围。为此,我用数字加上或减去日期,如:Javascript 如何在bootstrap datetime小部件中添加或减去日期、天、月?,javascript,datetime,twitter-bootstrap,datejs,Javascript,Datetime,Twitter Bootstrap,Datejs,我在我的模板中使用了一个引导DateTime小部件,我将两个小部件并排放置,以根据需要选择特定的日期、小时或月份范围。我已经链接了这两个小部件,所以用户可以总是选择To范围小于From范围。为此,我用数字加上或减去日期,如: var evDate = ev.date; if (evDate != null) { $('.'+reportCategoryTo.id). datetimepicke
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文件,但即使这样,它也不起作用。请帮忙 实际上,您不需要太担心要实现的功能,如果您可以使用jQuery UI,那么它非常简单。使用下面的示例,jQuery库将满足您的需要
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<form id="process_form" class="form" action="process.php" method="POST">
<label for="DOA">From:</label>
<input type="text" id="txtDOA" name="txtDOA" required="" class="hasDatepicker">
<label for="DOD">To:</label>
<input type="text" id="txtDOD" name="txtDOD" required="" class="hasDatepicker">
</form>
$(function()
{
$("#txtDOA").datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
onClose: function( selectedDate ) { $( "#txtDOD" ).datepicker( "option", "minDate", selectedDate ); }
});
$("#txtDOD").datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
onClose: function( selectedDate ) { $("#txtDOA").datepicker( "option", "maxDate", selectedDate ); }
});
});
Datejs已被放弃,我不建议使用它
您可能想考虑一下,它也有DATETIME算术函数。 例如:
var m = moment(evDateObject.getDate());
m.add('months', 1);
evDateObject.setDate(m.toDate());