2013-01-07 200 views
0

我已收到通知,說明我寫的內容不起作用(並且可能還沒有過幾個月,如果我認爲問題實際上是問題...!)日期和夏令時間

我總部設在英國,所以用GMT/BST工作

我得到的日期和時間,然後運行一個SQL函數來執行基於結果的更新,所以我的代碼是沿東西行...

$day = date("j M Y", mktime()); 

$hour = date('H',time()); 
$hourend = $hour + 1; 

$from = $day . " " . $hour . ":00:00"; 
$to = $day . " " . $hour . ":59:59"; 

然後SQL查詢獲取更新結果:

select username, dms from MISYearToDate('$from', '$to') 

那麼,我需要根據我們是否在夏令時改變$小時嗎?

例如

$isBST = date("I", $day); 
IF ($isBST == 1) 
{ 
$hour = $hour + 1; 
} 

還是會自動爲我做到這一點?

+0

什麼是'MISYearToDate'?這是你自己的程序之一嗎?它有什麼作用?至於你的查詢,它應該返回一個表(名稱)。 – feeela

+3

date_default_timezone_set('Europe/London'); –

+0

@feeela它只是一個函數,可以獲取開始日期時間和結束日期時間的統計信息(並且我每小時抽取統計信息,因此需要整整一小時) – franglais

回答

4

如果數據庫服務器和Web服務器都在同一時區運行,它應該按預期自動運行。

否則,我強烈建議您以UTC運行所有服務器以避免任何時區問題。你只需要確保你將UTC轉換爲View層的用戶時區。