add day to date javascript
本问题已经有最佳答案,请猛点这里访问。
我想添加一个我从textbox获得的日期。我尝试了下面的代码,但它没有用
1 2 3 4 5 6 7 8 9 10 11 | function get_renew_date () { var chkautorenew=document.getElementById("MainContent_chk_Isauto_Renew"); if (chkautorenew.checked) { end_date = document.getElementById("MainContent_txtContract_End_date").value; renew_date = document.getElementById("MainContent_txtContract_Renew").value; dat = new Date(end_date.toDateString()); //renew_date=dat.addDays(1); alert(end_date.toDateString()); } } |
我也担心客户日期格式和月份的最后一天,我怎么能确定在添加一天之后它不会像这个32/03/2016
谢谢
试试这个
1 2 3 | var date1 = new Date("03/31/2016"); var next_date = new Date(date1.getTime() + 86400000); alert(next_date.toLocaleDateString()); |
您可以通过将86,400,000毫秒(1天)添加到当前日期来添加一天。
1 2 3 | function addDays(date, numOfDays) { date.setTime(date.getTime() + (86400000 * numOfDays)); } |
您可以支持其他日期间隔,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | function dateAdd(date, interval, units) { var d = new Date(date); switch (interval.toUpperCase()) { case 'YEAR' : d.setFullYear ( d.getFullYear() + units ); break; case 'QUARTER': d.setMonth ( d.getMonth() + units * 3 ); break; case 'MONTH' : d.setMonth ( d.getMonth() + units ); break; case 'WEEK' : d.setDate ( d.getDate() + units * 7 ); break; case 'DAY' : d.setDate ( d.getDate() + units ); break; case 'HOUR' : d.setTime ( d.getTime() + units * 3600000 ); break; case 'MINUTE' : d.setTime ( d.getTime() + units * 60000 ); break; case 'SECOND' : d.setTime ( d.getTime() + units * 1000 ); break; default : d = undefined ; break; } return d; } function parseDate(dateString, delimiter) { var parts = dateString.split(delimiter).map(function(v) { return parseInt(v, 10); }); return new Date(parts[2], parts[1], parts[0]); } function formatDate(date, delimiter) { return [ date.getDate(), date.getMonth(), date.getFullYear() ].map(function(v) { return v < 10 ? ('0' + v) : v; }).join(delimiter); } function get_renew_date() { var chkautorenew = document.getElementById("MainContent_chk_Isauto_Renew"); if (chkautorenew.checked) { end_date = document.getElementById("MainContent_txtContract_End_date").value; renew_date = formatDate(dateAdd(parseDate(end_date, '/'), 'day', 1), '/'); document.getElementById("MainContent_txtContract_Renew").value = renew_date; } } get_renew_date(); |
1 2 3 4 | <input type="checkbox" id="MainContent_chk_Isauto_Renew" checked /> <input type="text" id="MainContent_txtContract_End_date" value="31/03/2016" /> <input type="text" id="MainContent_txtContract_Renew" value="" /> |
设置日期的行为是内部的,因此如果您将日期设置为"日期"+ 1,如果需要,它将自动影响数月甚至数年。
Date对象也是可变的,这意味着这样就足够了:
1 2 | dat = new Date(end_date.toDateString()); dat.setDate(dat.getDate() + 1); |