如何使用JavaScript在当前日期添加周数?

时间:2014-03-07 13:31:17

标签: javascript jquery date

我需要检查日期,一个是我选择的日期,第二个需要是当前日期+ 36周。

我环顾四周,我见过的所有解决方案都涉及GetDate() +天。

new Date().getDate() + 252

这不起作用,当前的日期是2014/03/07,所以上面的行需要7并添加252,这是不正确的。

我正在寻找使用JavaScript或jQuery的任何解决方案。

提前致谢。

5 个答案:

答案 0 :(得分:6)

检查jsFiddle

JavaScript代码

var newdate = new Date();
newdate.setDate(newdate.getDate()+252);   // 36 week * 7 day = 252
alert(newdate.getFullYear() + "-" + (newdate.getMonth() + 1) + "-" + newdate.getDate());  // alert(newdate);

答案 1 :(得分:0)

试试这个:

var now = new Date();
now.setDate(now.getDate()+252);

alert(now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDate());

检查小提琴:http://jsfiddle.net/Uz4VV/

答案 2 :(得分:0)

您是否尝试过date.setDate()功能?

var today = new Date();
today.setDate( today.getDate() + 252 ); 

答案 3 :(得分:0)

我知道你说过你只是想使用JavaScript和jQuery,但是有一个名为Moment.js的库,擅长这样做。

moment().add('weeks', 36);

就这么简单。为什么不试一试?

答案 4 :(得分:0)

  

请有人告诉我如何使当前日期= 36周,然后将其解析为'yyyy-MM-dd'格式

您需要的一切都在其他答案中,但要明确

// Start with a date
var d = new Date();

// Create a new date 36 weeks in the future
var e = new Date(+d + 36*7*24*60*60*1000);

// Convert to ISO 8601 format and get just the date part
alert(e.toISOString().split(/t/i)[0]);

或者自己获取位和格式化字符串:

function pad(n){return (n<10?'0':'')+n}
alert(e.getFullYear() + '-' + pad(e.getMonth()+1) + '-' + pad(e.getDate()));