[英]How To add number of month into the given date in javascript?
我想将月份添加到用户的选择日期中。
startdate=document.getElementById("jscal_field_coverstartdate").value;
现在我想从上述开始日期开始添加11个月。 怎么做。
日期格式= 2013-12-01
没有日期格式,很难分辨,但是您可以这样尝试
add11Months = function (date) {
var splitDate = date.split("-");
var newDate = new Date(splitDate[0], splitDate[1] - 1, splitDate[2]);
newDate.setMonth(newDate.getMonth() + 11);
splitDate[2] = newDate.getDate();
splitDate[1] = newDate.getMonth() + 1;
splitDate[0] = newDate.getFullYear();
return startdate = splitDate.join("-");
}
var startdate = add11Months("2013-12-01");
alert(startdate)
如果您的startdate
是在正确的日期格式,你可以尝试使用moment.js或Date
对象的JavaScript。
在Javascript中,可以通过以下方式实现:
var date = new Date("2013-12-01");
console.log(date);
//output: Sun Dec 01 2013 05:30:00 GMT+0530 (India Standard Time)
var newdate = date.setDate(date.getDate()+(11*30));
console.log(new Date(newdate));
// output: Mon Oct 27 2014 05:30:00 GMT+0530 (India Standard Time)
在以上几行中,我默认每月使用30天。 因此,您将获得准确的11个月但日期偏差很小。 这是你想要的吗 ? 您也可以这样做。 希望对您有所帮助:)
有关日期的更多信息,请访问MDN 。
您可以这样做:
var noOfMonths = 11
var startdate = document.getElementById("jscal_field_coverstartdate").value;
startdate.setMonth(startdate.getMonth() + noOfMonths)
尝试这个:
baseDate.setMonth(2);
baseDate.setDate(30);
noMonths = 11;
var sum = new Date(new Date(baseDate.getTime()).setMonth(baseDate.getMonth() + noMonths);
if (sum.getDate() < baseDate.getDate()) { sum.setDate(0); }
var m = newDate.getDate();
var d = newDate.getMonth() + 1;
var yyyy = newDate.getFullYear();
return (yyyy+"-"+m+"-"+d);
笔记:
添加月份(例如在1月31日之前添加一个月)可能会使days字段溢出,并导致月份递增(在这种情况下,您会获得3月的日期)。 如果要添加月份然后溢出日期,则.setMonth(base_date.getMonth()+ noMonths)可以工作,但是当人们谈论增加月份时,这很少有人想到。 它通过消除溢出的Month Day不是零索引来处理29、30或31变成1、2或3的情况,因此.setDate(0)是上个月的最后一天。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.