我有这个代码:

//Set Delivery Date based from Request Date
document.getElementById('ctl00_ctl00_PageContent_Content_scs_requestdate').onblur = function (e) {

var requestdate = new Date($('#ctl00_ctl00_PageContent_Content_scs_requestdate').val());
var dd = requestdate.getDate()+1;
var mm = requestdate.getMonth()+1; //January is 0!

var yyyy = requestdate.getFullYear();
if(dd<10){dd='0'+dd}
if(mm<10){mm='0'+mm}
requestdate = yyyy+'-'+mm+'-'+dd;
$('#ctl00_ctl00_PageContent_Content_scs_deliverydate').val(requestdate);


如果requestdate day + 1在给定月份的范围内,则可以正常工作,但是,如果requestdate day是给定月份的最后一天,并且我在该日期加1,则deliverydate字段显示mm / dd / yy,这意味着我设置为该字段的日期无效。

如何检查请求日期是否为该月的最后一天,并将交货日期设置为正确的值。

最佳答案

您可以在日期中添加日期,而不是在日期中添加日期,以便您可以从所需日期读取值。

var requestdate = new Date($('#ctl00_ctl00_PageContent_Content_scs_requestdate').val());
requestdate.setDate(requestdate.getDate() + 1);
var dd = requestdate.getDate();
var mm = requestdate.getMonth() + 1; //January is 0!

var yyyy = requestdate.getFullYear();

if (dd < 10) {
    dd = '0' + dd
}
if (mm < 10) {
    mm = '0' + mm
}
requestdate = yyyy + '-' + mm + '-' + dd;

09-25 21:08