JQuery DatePicker上的+1天

问题描述 投票:0回答:3

我想在选定日期后的第二天发出。

$('#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。有解决方案吗

javascript jquery datepicker jquery-ui-datepicker
3个回答
1
投票

如果您的日期格式与示例中的日期格式相同,则可以使用以下函数将日期添加到日期中。获得新日期后,您可以使用新添加的日期

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

使用

addDays(新日期('2017-12-31'),1);

OUT Put

Mon Jan 01 2018 00:00:00 GMT + 0530(印度标准时间)


0
投票

这是因为你处理数字的方式,而不是日期。要解决此问题,您需要先将其转换为日期。

要从jquery datepicker插件中获取日期,请使用:

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

然后你可以在这个答案后添加几天:Incrementing a date in JavaScript

我刚刚完成了一个非常复杂的jquery日历工作,我发现momentjs是一个救星,所以我建议你也能得到它。有了它,您可以执行以下操作: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);
}

但我的建议是,使用时刻js进行任何日期和时间的计算。伟大的日期和时间操作库。

© www.soinside.com 2019 - 2024. All rights reserved.