2017-12-20 18 views
0

選択した日の後に翌日を出したい。+1 Day on JQuery DatePicker

$('#toDate').datepicker({ 
    inline: true, 
    altField: '#x', 
    dateFormat: "dd-mm-yy", //day 
    altFormat: "yy-mm-dd", //year 
    monthNames: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], 
    dayNamesMin: ["Pa", "Pt", "Sl", "Ça", "Pe", "Cu", "Ct"], 
    firstDay: 1, 
    numberOfMonths: 1, 
    onSelect: function(dateText, inst) { 
     var dateup = ('0' + (parseInt(inst.selectedDay) + 1)).slice(-2); 
     var monthup = ('0' + (parseInt(inst.selectedMonth) + 1)).slice(-2); 
     var newdate = inst.selectedYear+'-'+monthup+'-'+dateup; 
     socket.emit('sockettoDate', newdate); 
    } 
}); 

このコードでは、月の最終日から翌日を計算することはできません。

例えば、2017-12-31が選択された場合、結果は2017-12-32です。どんな解決策ですか?

+0

可能な複製(https://stackoverflow.com [は、JavaScriptの日付に日数を追加します]/questions/563406/add-days-to-javascript-date) – CBroe

+0

文字列連結レベルでこれを行うのではなく、適切なDateオブジェクトを作成します。 – CBroe

答えて

1

日付の書式が例で指定したものと同じ場合、日付を追加日に次の関数を使用できます。新しい日付を取得した後、あなたは新たな付加日付

function addDays(date, days) { 
    var result = new Date(date); 
    result.setDate(result.getDate() + days); 
    return result; 
} 

使用

addDays(新しい日付( '2017年12月31日')、1)を使用することができます。

出し

月2018年1月1日00:00:00 GMT + 0530(インド標準時)

0

これは、あなたが数字ではなく日付で作業しているようにしたからです。それを修正するには、まず日付に変換する必要があります。 jqueryのDatePickerのプラグインから日付を取得仕事に

、使用:

var currentDate = $("#toDate").datepicker('getDate').getDate(); 

、その後、あなたはこの答えを、次の日を追加することができます。Incrementing a date in JavaScript

私はかなり複雑なjQueryのカレンダーに作業を終了し、私は救命救助者であることが分かったので、あなたもそれを手に入れることを提案します。それで、次のようなことができます。currentDate.add(1, 'days');これは、開発者の生活をはるかに簡単にします。

0

JavaScript Dateオブジェクトを使用することができます。

onSelect: function(dateText, inst) { 
    var date = new Date(dateText); 
    var newdate = new Date(date); 

    newdate.setDate(newdate.getDate() + 31); 

    socket.emit('sockettoDate', newdate); 
} 

しかし、私の推薦、任意の日付と時刻の計算にmomentjsを使用します。日付と時間を操作するための素晴らしい図書館。