2011-12-13 43 views
51

這是我的代碼我如何從jquery中的這個日期減去一週?

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

我需要txtEndDate的價值=今天的日期 - 這個星期

+0

此無關的jQuery。 –

回答

128

您可以修改使用setDate的日期。它自動校正轉移到新的月/年等

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

然後繼續呈現日期在你喜歡的任何事情的字符串。

+0

其設置日期爲..Tue Dec 06 2011 18:24:34 GMT + 0530(印度標準時間)..我需要日期以這種格式... 13/11/2011我該怎麼做現在? plz幫助..感謝 – Infinity

+2

您可以完全按照您的喜好進行格式化。以上代碼用於獲取距離現在完全一週的日期。然後,您可以繼續使用'... getDate()+'/'...'完全按照您當前使用'todaysDate'進行格式化。請注意,'getMonth()'是基於0的,這就是爲什麼你12月份得到'11',那裏... –

+2

如果你跨越一個月的邊界,這是否工作? –

2

退房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/

+0

你不需要像這樣簡單的庫,更不用說像momentjs這樣複雜的庫。 –

+0

@DanDascalescu,是正確的,但這不保證downvote。 – Hristo

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

這與接受的答案相同。 –

+0

@DanDascalescu,那麼,在帖子之間(5年之前)有〜2分鐘的差異! –

16

我會做這樣的事情

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

我也是如此,但如果兩個日期都是夏時制的一邊,請注意有趣的效果。 – Alnitak

+0

巨大的幫助!我更喜歡這種方法。儘管如此,我仍然癡迷於單線隊員。所以我用這個: 'var date = new Date(new Date()。getTime() - (60 * 60 * 24 * 7 * 1000));' – Shaidar

+0

您不需要.getTime() '。這同樣適用:'新日期(新日期() - 60 * 60 * 24 * 7 * 1000)'。 –