2011-10-29 91 views
0

日期是我的剋星,我只是無法弄清楚他們,所以請原諒這個蹩腳的問題!我支持基於LAMP的應用程序。明天凌晨2點,由於夏令時,時鐘返回1小時。我只是想弄清楚是否需要對我的應用程序代碼和/或數據進行任何調整。下面是設置:PHP UNIX時間戳int(10)DST

服務器時間就是UTC

PHP的時區設置與date_default_timezone_set( '歐洲/都柏林');

MySQL表CREATE語句是:

CREATE TABLE `databasename`.`events` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , 
`name` VARCHAR(40) NOT NULL , 
`event_date` INT(10) UNSIGNED NOT NULL 
) ENGINE = MYISAM ; 

我使用存儲事件:

mysql_query("INSERT INTO `events` (`name`, `event_date`) VALUES ('name', ".time().")"); 

我使用一個類似的查詢檢查數據庫中即將發生的事件:

mysql_query("SELECT `id`, `name` FROM `events` WHERE `event_date` - " . time() . " < 0"); 

將e明天凌晨2點後的通風口提前1小時出門,否則我應該好嗎?

+0

它可以在* *究竟是2AM事件的情況。 – GolezTrol

+0

謝謝 - 編輯添加,第一個查詢不正確。它應該是:sql_query(「INSERT INTO'events'('name','event_date')VALUES('name',」。$ epochinfuture。「)」); – Niall

回答

1

「歐洲/都柏林」應該使用都柏林的DST(自動切換),那麼你是好

+0

好的,謝謝你 - 所以只是爲了讓我的頭在附近(我相信其他人會在未來幾年內搜索這個),PHP的time()函數考慮了時區設置,並不僅僅是UTC害怕。例如:mktime(1:59 am)== mktime(2:59 am)? – Niall

+0

date_default_timezone_set設置TZ,所有時間相關的功能使用它,然後 有物理時區(它們看起來像地圖上的條紋)和不同城市/國家使用的「真實」時間以及其他經常跳轉到其他地方的事物時區和後面。這就是爲什麼PHP使用城市相關的設置,而不是「utc + 1」類型的語法。都柏林實際上超出了它的實際時區,並且很快就會恢復,這要歸功於這段代碼date_default_timezone_set('Europe/Dublin');這不是你的問題 – bcat

+0

謝謝你的幫助。 – Niall