2016-07-13 87 views
1

我想了解如何在客戶端和服務器上使用Javascript日期創建客戶端和服務器的時區可以不同時會影響查詢結果。Javascript中的Date.now和Date.getTime與時區如何影響它們有什麼區別?

在客戶端,我使用Date.now()保存時間戳信息

var time = Date.now() 
console.log(time); 

的NOW()方法現在返回自1經過1970年1月的毫秒 00:00:00 UTC,直到作爲數。

我的理解是,這個時間戳是獨立於任何時區偏移,換句話說,它指向時間在Zero timezone offset這是正確的嗎?

我們還可以使用下面的代碼

var now = new Date(); 
time = now.getTime(); 
console.log(time); 

此代碼仍然給出了同樣的時間戳信息(在零區偏移量)得到這個時間戳。 Date.now()是獲取時間戳的快捷方式嗎?

現在,構建日期從Date.now()並顯示在瀏覽器的控制檯。

var time = Date.now() 
console.log(time); 

var date = new Date(time) 
var time = date.getTime() 
console.log(time); 

console.log(date); 

在我看來,它只是在瀏覽器的控制檯顯示時,日期是在瀏覽器的本地時區格式化,否則此日期實例仍持有爲零時區的時間戳偏移。 這是正確的嗎?

我也看到了converting Javascript date to UTC

var now = new Date(); 
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds()); 
time = now_utc.getTime(); 
console.log(time); 

回答這個代碼仍然給由Date.now()console.log陳述僅我認爲幾毫秒內被不同給予相同的時間戳信息是由於代碼執行時間,而不是任何時區差異。在執行時,以下對時間該實例的輸出:

1468408292575 
1468388492000 

是否存在被Date.now()給UTC時間戳和時間戳之間有什麼區別?

您可以確認這三個選項是否產生相同的結果(即獨立於任何時區),以及在時區信息不同時使用此時間戳信息進行客戶端和服務器交互是否安全。示例:

  • 客戶端向服務器端發送保存請求以保存此客戶端生成的時間戳?
  • 客戶根據此保存的時間戳記要求結果?

我想將其降低到僅用於顯示時區信息以顯示目的的級別,例如,在HTML中,在生成的文件中。

我的問題可能太簡單了,因爲我很困惑看到Date class documentation正確使用它來避免時間差異問題。

+0

有沒有差別,只是Date.now()不要求你創建一個新對象 –

+1

然後它們返回自1970年以來的毫秒數。Januar 1. 00.00.00 GMT 0 –

回答

0

都是通常同一

var dt1 = Date.now(); is little faster 

更多參考

Link 1

Link 2

相關問題