背景:我有一個系統,允許用戶創建待辦事項。目前,每12小時一個cron作業就會關閉,併發送提醒電子郵件。問題?不是每個用戶都在同一個時區,所以我的早上7點可以是他們的凌晨1點。PHP轉換時區提醒電子郵件
目標:允許用戶選擇他們自己的時區。此外,允許用戶選擇他們自己的首選時間,以15分鐘爲增量(選擇小時和00,15,30或45)。
我得到了:我在我的web應用程序上設置了一個變量來匹配電子郵件服務器的時區(-0600)。我允許用戶提交自己的時區和兩個首選的電子郵件時間。我正在編寫一個腳本,用於檢查當前時間是否與用戶的首選發送時間相匹配,並查看用戶的時區是否與系統的時區匹配。
背景,第二部分:當用戶提交他們的時區時,他們選擇他們的兩個首選時間(這三個信息都會被放到他們自己的數據庫中)。
我卡在哪裏: 我認爲最好的選擇是在用戶提交時將首選時間($ etime1和$ etime2)轉換爲系統的時區($ systz),所以它存儲在數據庫中系統的時區。這樣,計算是在用戶提交他們的偏好(不是很經常)時完成的,並不是每次執行cron作業(通常是每15分鐘一次)。用戶的時區在變量$ uzertz下。
所以:用戶提交的數據,這就是我有」
if ($usertz == $systz) {
*submit the $etime1 and $etime2 data as-is*}
else { *run some sort of script to convert $etime1 and $etime2 to the -0600
(system's timezone) equivalent, after which is should be submitted to the db in it's
converted version* }
我瞭解PHP提供的方式,以時間從一個時區轉換爲另一種,但我一直有以下如何很難這些腳本的工作,特別是因爲一個人的,我發現在看系統時間,而不是用戶提交的時間。
謝謝!
http://stackoverflow.com/a/11982744/149998 - 這應該會幫助你 - 忽略與特定應用程序有關的最後的東西。 – bcmcfc
謝謝,我正在檢查它,看起來像你搖晃那個線程。 –
靠近這個:http://stackoverflow.com/questions/7734678/convert-selected-time-and-timezone-to-a-set-timezone –