date與gmdate的區別

2021-08-23 15:03:29 字數 771 閱讀 5894

php中的時間有2個格式化函式:date()和gmdate(),在官方的文件中的描述為:

date -- 格式化乙個本地時間/日期

gmdate -- 格式化乙個 gmt/utc 日期/時間,返回的是格林威治標準時(gmt)。

舉個例子,我們現在所在的時區是+8,那麼伺服器執行以下指令碼返回的時間應該是這樣的:

當前時間假定是2007-03-14 12:15:27

echo date('y-m-d h:i:s', time()); 輸出為:2007-03-14 12:15:27

echo gmdate('y-m-d h:i:s', time()); 輸出為:2007-03-14 04:15:27

但是這只是在linux+apache下執行php所得的結果,如果在windows下執行,則2個函式返回都是:2007-03-14 04:15:27。

所以,我們應該給乙個相容性的寫法,統一使用gmdate,並手工設定當前時區,寫法改進如下:

echo gmdate('y-m-d h:i:s', time() + 3600 * 8);

這樣不管在linux+apache下還是windows下都得到了正確的結果,當然這樣寫還有乙個好處,當**是面向全世界的時候,那麼**使用者只要設定所在的時區,程式自動根據使用者設定的時區進行時間計算,資料庫中資訊發布時間只存當前的time()所生成的時間,那麼在中國+8時區看到的發布時間是:2007-03-14 12:15:27,那麼在歐洲+2時區使用者看到這個資訊的發布時間是:2007-03-14 06:15:27,這樣資訊的時間就全部對應正確了。

date與gmdate的區別

php中的時間有2個格式化函式 date 和gmdate 在官方的文件中的描述為 date 格式化乙個本地時間 日期 gmdate 格式化乙個 gmt utc 日期 時間,返回的是格林威治標準時 gmt 舉個例子,我們現在所在的時區是 8,那麼伺服器執行以下指令碼返回的時間應該是這樣的 當前時間假定...

PHP基礎學習之date與gmdate的區別

php中的時間有2個格式化函式 date 和gmdate 在官方的文件中的描述為 date 格式化乙個本地時間 日期 gmdate 格式化乙個 gmt utc 日期 時間,返回的是格林威治標準時 gmt 舉個例子,我們現在所在的時區是 8,那麼伺服器執行以下指令碼返回的時間應該是這樣的 當前時間假定...

date 和gmdate時區問題 php

在php時間函式中,格式化時間函式date 和gmdate date 格式化乙個本地時間 日期 gmdate 格式化乙個 gmt utc 日期 時間,返回的是格林威治標準時 gmt 也就是說返回的是0時區的時間,並不是北京東八區的時間。假設當前北京時間是2010 08 14 12 15 27 ech...