2016-09-18 15 views
0

私はページに2 bootstrap 3 datepickersを持っています。 1つは発行日でもう1つは期日です。 due_dateissue_date + transactionDaysTerms(たとえば14日)に設定したいとします。ブートストラップ3日付ピッカーとモーメントの問題

$('#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でさまざまなフォーマットを試してみましたが、このコードは、私が日付ピッカーで動作するようにmoment.jsから日付フォーマットを取得できますか

Uncaught TypeError: date.match is not a function 

で失敗しますか?

答えて

0

は、あなただけの終了日

$('#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

+0

こんにちは@adeneo、この形式で取得された日付としては機能しません。Wed Sep 21 2016 00:00:00 GMT + 1000(オーストラリア東部標準時間)ピッカーから。 – TheRealPapa

+0

いいえ、 'console.log(typeof date)'を実行した場合、日付はjavascriptオブジェクトでなければなりません – adeneo

+0

[docs](https://bootstrap-datepicker.readthedocs.io/en/latest/methods .html#getdate)も同様です。* "内部日付オブジェクトを表すローカライズされた日付オブジェクトを返します。" * – adeneo

0

これを日付ピッカーからタイムスタンプを取得するためにgetDateを使用して、乗算日(ミリ秒)を取得するには、それを追加し、設定できませんでした完璧に動作します。

$('#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()を必要としていました。

+0

いいえ、あなたは '$( '#issue_date')。val()'ではなく '.datepicker( 'getDate')'を使う必要がありました。私は 'setDate'が何らかの理由でタイムスタンプを受け付けていないようだが、別の日付オブジェクトだけを受け入れるように少し変更しました。 – adeneo

関連する問題