2013-05-29 58 views
12

有沒有辦法鏈接JavaScript日期函數?如何鏈接JavaScript日期函數

例如,我想是這樣的:

var d = new Date().setMinutes(0).setSeconds(0).setMilliseconds(0); 

這句法打破了錯誤:

(new Date).setMinutes(0).setSeconds is not a function 

我知道我能做到這一點:

var d = new Date(); 
d.setMinutes(0); 
d.setSeconds(0); 
d.setMilliseconds(0); 

但這感覺冗長和繁瑣。有沒有更好的辦法?

+1

是的。 http://momentjs.com/ – SLaks

+0

不錯。謝謝。我看過Java的JodaTime,並假設Javascript中有一個等效庫。 – MyTimeFinder

回答

7

可以設置秒和毫秒與setMinutes方法:

var d = new Date(); 
d.setMinutes(0,0,0); 

與小時 - 同樣適用此d.setHours(0,0,0,0);

+1

我想答案是「不」,你不能鏈接,但我不知道setHours(顯然setFullYear)可以採取多個參數。這是我需要的合理解決方案。 – MyTimeFinder

3

您可以將參數傳遞給Date constructor。例如。

var d = new Date(null, null, null, null, 0, 0, 0); 
+0

@kennebec你想要的實際日期是什麼? –

+1

如果將'null'默認爲當前年份,月份,日期,這將是最好的答案。不過,看起來這會給我1899年12月31日。通常我試圖操縱日期相對於用戶與我的網站互動的日期。我不知道今天會是哪一天,但是我希望從當天中午的那一天或5天中午開始。 d.setHours(16,0,0,0)在那天下午4點設置一些東西是我最常見的情況。 – MyTimeFinder

0

這個問題是相當老,但你可以與尤里的結合肯納貝克的答案如果需要,請將其設爲單行:

var d = new Date(new Date().setMinutes(0,0,0))