我在页面上有2 bootstrap 3 datepickers。一个是发布日期,另一个是截止日期。我想将due_date
设置为issue_date + transactionDaysTerms
(例如14
天)。
$('#issue_date').datepicker({
}).on('changeDate', function(event){
$(this).datepicker('hide');
var calculatedEndDate = moment($('#issue_date').val()).add(transactionDaysTerms, 'days');
$('#issue_date').datepicker('setEndDate', calculatedEndDate);
$('#due_date').datepicker('setEndDate', calculatedEndDate);
}).on('clearDate', function(event){
$(this).datepicker('setDate', today);
});
我尝试使用moment
的各种格式无济于事。此代码以
Uncaught TypeError: date.match is not a function
如何从moment.js获取日期格式以使用datepicker?
答案 0 :(得分:1)
这很有效。
$('#issue_date').datepicker({
}).on('changeDate', function(event){
$(this).datepicker('hide');
var calculatedEndDate = moment($(this).datepicker('getDate')).add(transactionDays, 'days').toDate();
$('#issue_date').datepicker('setEndDate', calculatedEndDate);
$('#due_date').datepicker('setDate', calculatedEndDate);
}).on('clearDate', function(event){
var calculatedEndDate = moment(today).add(transactionDays, 'days').format('L');
$('#issue_date').datepicker('setEndDate', calculatedEndDate);
$('#due_date').datepicker('setDate', calculatedEndDate);
});
我在电话会议结束时只需要.toDate()
。
答案 1 :(得分:0)
你不能只使用getDate
从datepicker获取时间戳,然后将天数乘以得到毫秒,加上它,并设置结束日期
$('#issue_date').datepicker().on('changeDate', function(event) {
$(this).datepicker('hide');
var date = $(this).datepicker('getDate');
var days = transactionDaysTerms * 24 * 60 * 60 * 1000;
var calculatedEndDate = new Date( date.getTime() + days );
$('#issue_date, #due_date').datepicker('setEndDate', calculatedEndDate);
}).on('clearDate', function(event) {
$(this).datepicker('setDate', today);
});