2012-06-06 102 views
1

我一直在使用JavaScripts時間戳整個上午現在。我一直運行Javascript時間戳無效

today = (new Date()).setHours(0,0,0,0)today = (new Date()).getTime()

這2個輸出13389300000001338978151748收到無效的時間戳。

我想這只是一個鉻js引擎錯誤,但轉載它與Firefox。這兩份報表的預期產出爲13389300001338977700

但是,我有辦法解決這個問題。解決方法是這樣的:

today = parseInt(((new Date()).setHours(0,0,0,0) * Math.pow(10, -3)).toFixed(0))

或不調用setHours()

today = parseInt(((new Date()) * Math.pow(10, -3)).toFixed(0))

這是一個常見的錯誤?我做錯了什麼來獲得這些結果?時間戳格式爲時間戳* 10^3。

編輯:

原來我期待在幾秒鐘的時間(織補你PHP),而JavaScript的輸出以毫秒爲單位。我正在使用phpJS日期/時間庫,並且javasctipt時間戳似乎不是本機可編譯的strtotime()和date()

我試圖使用unix時間戳,這些都是以秒爲單位。

回答

6

getTime()返回自1970/01/01以來的毫秒數,而不是秒。

//milliseconds 
var milliseconds = new Date().getTime(); 

//seconds 
var seconds = new Date().getTime()/1000; 
+1

哦,哇。太習慣了PHP我猜...對不起,你們! –

+0

該死!認爲這是秒! +1 – GoodSp33d

1

這不是一個錯誤 - 您期望在幾秒鐘內完成時間戳(爲什麼?),而javascript會給出毫秒精度的時間戳。

+0

哦,哇。太習慣了PHP我猜...對不起,你們! –

1

Unix時間戳使用秒,但Javascript時間戳使用毫秒!這就是爲什麼你需要1000

http://www.w3schools.com/jsref/jsref_utc.asp

的UTC到multiply.divide()方法返回的毫秒1970年1月1日的 指定的日期和午夜之間的數,按照通用 時間。

+0

使用phpJS的日期/時間函數使我困惑了;)我主要開發PHP,所以我習慣了秒鐘的時間戳。很高興知道。謝謝! –