Bootstrap 3 datepicker和时刻问题

时间:2016-09-18 01:44:01

标签: javascript jquery twitter-bootstrap datepicker

我在页面上有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?

2 个答案:

答案 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);
});

FIDDLE