[英]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.