我有一個Web應用程序,允許用戶選擇具有在特定時間對特定工作日進行一定的操作(例如:晚上7點星期五) - 重複每個工作日。我的用戶位於不同的時區。因此,我想有一天/小時儲存在同一個時區的格式,以便它運行小時我的cron作業,可以查詢我的數據庫趕緊搶來執行所有任務,代表了該行小時。什麼是實現這一目標的最佳方式?PHP轉換工作日和時間(小時),GMT表示
基本上我需要知道如何採取 星期五下午7:00在馬薩諸塞州波士頓或星期六下午3:00加利福尼亞州舊金山,並轉換爲GMT(並在我的數據庫中存儲)。這樣,當我每小時運行一次我的cron作業時,我確切地知道查詢數據庫的價值是什麼,以給出它當前的GMT日/小時。
編輯1 通過玩弄我想出了:
date_default_timezone_set('America/New_York');
$time = strtotime('Friday 8:00pm');
echo date('w : G', $time);
echo '<br>';
date_default_timezone_set('GMT');
$date = date('w : G', $time);
echo $time;
echo '<br>';
echo $date;
輸出是:
5 : 20
1331942400
6 : 0
基本上這是在正確的軌道?
EDIT 2 有用的細節,實際上,我很幸運地擁有存儲爲其中的一個我的用戶的時區信息: http://www.php.net/manual/en/timezones.php
在情況下,用戶應在其時區選擇的時候,你可能[需要找出他們的時區](http://stackoverflow.com/questions/13/how-can-i-determine-a-web-users-time-zone)?更簡單的可能性是讓他們從GMT中選擇,然後用當地時間添加JS提示。 – Aufziehvogel 2012-03-11 08:23:38
@aufziehvogel,我其實已經有了自己的時區。我玩過一個想法並將其添加爲編輯。 – 2012-03-11 08:25:46
棘手。也許一個下拉/供用戶選擇,選擇時區,然後使用日期函數在PHP與UTC偏移返工,但你也必須允許夏令時間。例如我在GMT/UTC 0,但在月底,我們swithc英國夏季 – PurplePilot 2012-03-11 08:33:09