在Unix上,我可以運行date '+%s'
以獲取自epoch以來的秒數。但我需要在瀏覽器前端查詢,而不是後端。如何在Javascript中使用新紀元以來的秒數?
有沒有一種方法可以找出從Epoch到JavaScript以來的秒數?
在Unix上,我可以運行date '+%s'
以獲取自epoch以來的秒數。但我需要在瀏覽器前端查詢,而不是後端。如何在Javascript中使用新紀元以來的秒數?
有沒有一種方法可以找出從Epoch到JavaScript以來的秒數?
var seconds = new Date()/1000;
或者,對於少哈克版本:
var d = new Date();
var seconds = d.getTime()/1000;
不要忘記Math.floor()
或Math.round()
四捨五入到最接近的整數或你可能會得到一個非常奇怪的小數,你不希望:
var d = new Date();
var seconds = Math.round(d.getTime()/1000);
試試這個:
new Date().getTime()/1000
您可能想要使用Math.floor()
或Math.round()
來減少毫秒級分。
您可以創建一個Date對象(其中將包含當前時間),然後調用getTime()
以獲取自epoch以來的ms。
var ms = new Date().getTime();
如果你想秒,然後除以1000它:
var sec = new Date().getTime()/1000;
我的首選方式:
var msEpoch = (+new Date());
var sEpoch = (+new Date())/1000;
有關+
jump down the rabbit hole更多信息。
上述解決方案使用實例屬性。另一種方法是使用類屬性Date.now
:
var time_in_millis = Date.now();
var time_in_seconds = time_in_millis/1000;
如果你想time_in_seconds是一個整數,你有兩個選擇:
一個。如果你想用C風格截斷一致:
time_in_seconds_int = time_in_seconds >= 0 ?
Math.floor(time_in_seconds) : Math.ceil(time_in_seconds);
灣如果你只想讓整數除法的數學定義成立,就請發言。 (Python的整數除法是這樣的)。
time_in_seconds_int = Math.floor(time_in_seconds);
您想紀元以來的秒數
function seconds_since_epoch(){ return Math.floor(Date.now()/1000) }
例如使用
foo = seconds_since_epoch();
這應該是答案,因爲它考慮到了小數。 – 2015-04-15 20:55:08
如果你想只有幾秒鐘因爲沒有代表毫秒還連着十進制整數,使用此:
var seconds = Math.floor(new Date()/1000);
......我想即使'新日期()/ 1000'應該工作。 – 2012-02-26 19:05:55