[英]Why is there a difference between JavaScript and PHP timestamp
我創建了一個JavaScript時間戳和一個PHP時間戳。 它們之間有大約170秒的差異。
time()
Math.round(new Date().getTime() / 1000)
誰能告訴我為什么我有這個問題?
PHP在服務器端執行,在您的示例中,JavaScript在客戶端工作。
雙方都有自己的時間配置。 對於服務器,時區設置等將保持不變(除非您更改它們),但服務器不知道當前訪問者所在的時區。您無法控制它。
如果我在筆記本電腦上更改系統時鍾,它將影響客戶端JavaScript日期/時間,但您的服務器計時器不會受到影響。
PHP和JavaScript,都看系統時間。 誰的系統? 他們正在運行的那個。 服務器可能位於另一個國家,時間不同,因此存在差異。
此外,客戶端(或不常用的服務器)時鍾可能不正確。
我常用來解決這個問題的一種方法是這樣的:
var referenceTime = new Date('<?php echo date("M n, Y"); ?>');
// referenceTime is now the same as server time
PHP查看系統時間,即運行它的服務器。
JavaScript查看客戶端的系統,這可能是任何時候。
php使用你服務器上的時間,javascript將使用客戶端(用戶)機器上的時間。
馬蒂亞斯是對的。 通常情況下,這不應該發生這么大的差異,因為現代計算機會識別它們的時鍾隨時間漂移並采用NTP等協議來保持其時鍾同步。
然而,你永遠不應該假設客戶端和服務器上的時間是相同的,原因有兩個:
比較/計算時間時,我只依賴服務器。 您無法控制客戶端。
如果您擔心出於任何目的的一致性,我建議您使用服務器作為時間源,並在必要時進行時區轉換:
這可能是有意義的: 使用php處理時區轉換
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.