如何从jquery的这个日期减去一个星期?


73

这是我的代码

var myDate = new Date();
todaysDate = ((myDate.getDate()) + '/' + (myDate.getMonth()) + '/' + (myDate.getFullYear()));
$('#txtEndDate').val(todaysDate);

我需要txtEndDate的值=今天的日期-一星期


这与jQuery无关。
Dan Dascalescu '18

Answers:


175

您可以使用修改日期setDate。它会自动更正以转移到新的月份/年份等。

var oneWeekAgo = new Date();
oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);

然后根据您的喜好将日期呈现为字符串。


将日期设置为此。.TueDec 06 2011 18:24:34 GMT + 0530(印度标准时间)..我需要将日期设置为这种格式... 13/11/2011我现在该怎么做?plz help ..谢谢
Infinity

2
您可以完全按照自己的意愿格式化它。上面的代码用于获取距现在正好一周的日期。然后,您可以按照当前todaysDate使用的方式完全对其进行格式化...getDate() + '/' ...。请注意,它getMonth()是从0开始的,这就是为什么要在那里11去12月...
David Hedlund

@Asad我可以在这里确认大卫是正确的-它的工作跨越边界月
詹姆斯库欣

谢谢:)
nescafe

21

我会做类似的事情

var myDate = new Date();
var newDate = new Date(myDate.getTime() - (60*60*24*7*1000));

7
我也会这样,但是如果两个日期都在夏令时的任何一方,请注意一些有趣的效果。
Alnitak

巨大的帮助!我更喜欢这种方法。不过,我迷恋一线。所以我用这个: var date = new Date(new Date().getTime() - (60*60*24*7*1000));
Shaidar

您不需要.getTime()。效果也一样:new Date(new Date() - 60 * 60 * 24 * 7 * 1000)
Dan Dascalescu '18

@DanDascalescu不会调用一个全新的日期生成器吗?并不是说这将取决于用例而有很大的不同,但是我想像的是,较少的课堂建设就更好了
Cacoon 19'Jan

8
var now = new Date();
now.setDate(now.getDate() - 7); // add -7 days to your date variable 
alert(now); 

@DanDascalescu,嗯,帖子之间(距今5年)相差约2分钟!
Sandeep GB

1

查看Date.js。真的很整洁!

http://www.datejs.com/

这是使用Date.js的几种方法:

// today - 7 days
// toString() is just to print it to the console all pretty

Date.parse("t - 7 d").toString("MM-dd-yyyy");     // outputs "12-06-2011"
Date.today().addDays(-7).toString("MM-dd-yyyy");  // outputs "12-06-2011"
Date.today().addWeeks(-1).toString("MM-dd-yyyy"); // outputs "12-06-2011"

作为不相关的旁注,请同时检查Moment.js ...我认为2个库相互补充:)

http://momentjs.com/


1
您不需要像这样简单的库,更不用说像momentjs这样的复杂库了。
Dan Dascalescu '18

1
@DanDascalescu,是的,但这并不意味着需要投票。
赫里斯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.