PHP時間處理裏,兩個重要概念:
時間戳:是自 1970 年 1 月 1 日(00:00:00 GMT)以來的秒數。它也被稱爲 Unix 時間戳(Unix Timestamp)。
時區: 1884年國際子午線會議上規定,將全球劃分爲24個時區。它們是中時區(零時區)、東1-12區,西1-12區。每個時區橫跨經度15度,時間正好是1小時,由於每個國家都可能橫跨多個市區,爲了讓全國統一時間,一般採用某個地區的時區爲全國的時區,如中國以東8區的北京的時間爲全國的統一時間,稱爲北京時間。
不同時區的運算法則:同減異加,東加西減 (同,異表示時區是否相同或相異,如東1區與東8區爲同,與西8區則爲異了)
PHP的時間處理:
time():表示當前的時間戳
mktime(hour,minute,second,month,day,year,is_dst):通過設置具體的時間參數獲得時間戳,is_dst爲可選參數,表示是否夏令時,通過是無效的。
gmdate(format,timestamp) :函數格式化 GMT/UTC 日期/時間
PHP的開發的應用中,時間的存儲應該爲數字型的時間戳,然後根據用戶的具體時區格式化時間戳以顯示實際時間,php.ini中有date.timezone可以設置默認時區,但爲了讓開發出的系統儘量不受具體環境的影響,一般採用應用級的配置文件來設置默認時區。
其他具體函數可參考PHP手冊