jquery使用date.js添加几个月的日期

时间:2017-01-29 19:19:59

标签: jquery date

我正在使用date.js,我想在设定日期添加一定数月的数月

此代码在这里工作正常,到今天增加1个月

var start_date = $("#start_date").val();

expiry_date = Date.now().addMonths(1);

$("#expiry_date").val(expiry_date.toString("dd-MM-yyyy"));

但我想在我的start_date变量中添加1个月,但是当我使用

expiry_date = start_date.addMonths(1);

我收到错误,告诉我start_date不是有效的功能

更新:

$("#start_date, #payment_period").on('change', function() {
    var start_date = Date.parse($("#start_date").val());
    var period = $("#payment_period").val();

    expiry_date = start_date.addMonths(period);

    $("#expiry_date").val(expiry_date.toString("dd-MM-yyyy"));
});

这是我正在使用的代码,它工作正常,但如果页面加载时#start_date输入中已有值,并且其中一个输入有更改,则表示没有显示正确的日期。

例如,如果页面在12-12-2016输入中加载#start_date,我将其更改为13-12-2016period24 { {1}}输入#expiry_date的更改,应该是13-09-2109

如果我清除13-09-2019输入并输入新值但其不适用于现有值

,则其工作正常

1 个答案:

答案 0 :(得分:1)

var start_date = Date.parse($("#start_date").val());
var period = parseInt($("#payment_period").val());

<强>更新

您可以通过change触发.trigger('change')事件,也可以在文档准备好后直接调用方法.change()

例如

$("#start_date, #payment_period").change()

由于date.js方法addMonths()需要Number参数,您应首先将您的句点强制为一个数字(通过parseInt())并检查它是否不是{{1} }}