通过从Javascript中的特定date减去X天数来查找date

我想通过从JavaScript中的特定date减去X天来finddate。 我的JavaScript函数接受2个参数。 一个是date值,另一个是需要减去的天数。

例如,我把我的论点date定为2009年7月27日,我将其他论点作为3.所以我想计算2009年7月27日前3天的date。所以我们应该得到的结果date是2009年7月24日。这可能在JavaScript中。 感谢您的帮助。

只是:

yourDate.setDate(yourDate.getDate() - daysToSubtract); 
 function date_by_subtracting_days(date, days) { return new Date( date.getFullYear(), date.getMonth(), date.getDate() - days, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds() ); } 

从来没有去这个解决schemeyourDate.setDate(yourDate.getDate() – daysToSubtract);

它不会工作,如果你的date是任何一个月的第一,你想删除一些日子说1。

相反,去下面的解决scheme,将始终工作

var newDate = new Date(yourDate.getTime() – (days * 24 * 60 * 60 * 1000));

在这里,我发布了一个更多的答案,这将返回特定格式的date。

首先你可以得到如下date10/08/2013

 function Cureent_Date() { var today_GMT = new Date(); var dd = today_GMT.getDate(); var mm = today_GMT.getMonth() + 1; //January is 0! var yyyy = today_GMT.getFullYear(); if (dd < 10) { dd = '0' + dd } if (mm < 10) { mm = '0' + mm } current_date = mm + '/' + dd + '/' + yyyy; alert("current_date"+current_date); Back_date(); } 

现在在X天取回date

 function Back_date() { var back_GTM = new Date(); back_GTM.setDate(back_GTM.getDate() - 2); // 2 is your X var b_dd = back_GTM.getDate(); var b_mm = back_GTM.getMonth()+1; var b_yyyy = back_GTM.getFullYear(); if (b_dd < 10) { b_dd = '0' + b_dd } if (b_mm < 10) { b_mm = '0' +b_mm } var back_date= b_mm + '/' + b_dd + '/' + b_yyyy; alert("back_date"+back_date); } 

所以,今天是10/08/2013所以它将返回10/06/2013

在这里检查现场演示希望这个答案将帮助你。

这里有一个例子,但是这没有任何检查(例如,如果你在2009/7/1使用它,它会使用负面的一天或抛出一个错误。

 function subDate(o, days) { // keep in mind, months in javascript are 0-11 return new Date(o.getFullYear(), o.getMonth(), o.getDate() - days);; } 

这是我会做的。 请注意,您可以简化expression式,我刚写下来清楚地表明您将天数乘以一天中的毫秒数。

  var newDate = new Date( yourDate.getTime() - (days * 24 * 60 * 60 * 1000) ); 

只是另一个select,我写道:

DP_DateExtensions库

如果你想要做的只是一个计算,可能是矫枉过正,但如果你要做更多的date操作,你可能会发现它有用。

支持date/时间格式,datemath(加/减date部分),date比较,date分析等。

这是参考上面的答案检查这个小提琴

https://jsfiddle.net/uniyalguru/azh65aa0/

 function Cureent_Date() { var today_GMT = new Date(); var dd = today_GMT.getDate(); var mm = today_GMT.getMonth() + 1; //January is 0! var yyyy = today_GMT.getFullYear(); if (dd < 10) { dd = '0' + dd } if (mm < 10) { mm = '0' + mm } current_date = mm + '/' + dd + '/' + yyyy;