2017-02-17 48 views
0

我需要將日期時間存儲在mysql數據庫中。從javascript發送日期時間時管理夏令時時間到php

這些日期時間來自瀏覽器,因此美國,歐洲或亞洲或任何地方的用戶將看到他們的正確時間。

在瀏覽器中,我有以下的javascript代碼:

var d = new date(); 
var iso_date_string = d.toISOString(); 
// produces something like "2017-02-17T19:42:27.100Z" 

我這個字符串給它運行PHP,在我的服務器代碼我有服務器:

$date = date("Y-m-d H:i:s", strtotime("2014-02-17T19:42:27.100Z")); 

然後我在MySQL中插入這個值。

一切工作正常,除非我沒有得到確切的時間,我在MySQL中存儲的內容和我在計算機上的時間之間存在1小時的差異。

我認爲這可能與考慮到夏令時有關,但我找不到如何操作。

請指教。

+1

你的數據庫是否也有時區? – Machavity

回答

1

當您總是將UTC日期時間發送到您的服務器並讓javascript在顯示時將其轉換回來時,問題就不會發生。

0

PHP日期將受嵌入在php.ini文件中的時區信息的影響。

就mysql存儲而言,您可能希望使用UTC或其他一些不受夏時制影響的標準,以將日期時間存儲在mysql中。然後,無論哪個瀏覽器讀取它,都應根據其當地時區信息進行轉換。

請參閱這篇文章進一步閱讀:

Daylight saving time and time zone best practices

0

該解決方案設置php.ini文件中正確的時區信息的伎倆。

謝謝。