有沒有辦法使用date()
函數,並讓它返回一個特定的時區的當前日期,而不是服務器日期?使日期()返回一個時區特定的日期/時間不使用date_default_timezone_set()
我明白我可以使用:
date_default_timezone_set('Asia/Tokyo');
date('j F Y');
然而,我在一個大的應用程序的情況下這樣做,而且做的date_default_timezone_set()
可能使在腳本的其餘部分的其他日期操作的行爲不同。
有沒有辦法使用date()
函數,並讓它返回一個特定的時區的當前日期,而不是服務器日期?使日期()返回一個時區特定的日期/時間不使用date_default_timezone_set()
我明白我可以使用:
date_default_timezone_set('Asia/Tokyo');
date('j F Y');
然而,我在一個大的應用程序的情況下這樣做,而且做的date_default_timezone_set()
可能使在腳本的其餘部分的其他日期操作的行爲不同。
改爲使用DateTime
類,它允許您在創建時指定時區(默認爲UTC),或者使用setTimezone()
更改呈現時區。
使用DateTime::createFromFormat(> = 5.3.0),它允許您設置給定日期的時區。這將允許您僅修改給定日期的時區,而不修改可能出現在腳本其他地方的日期。
返回根據指定的 格式格式化的新的DateTime對象。
面向對象的風格
public static DateTime DateTime::createFromFormat (string $format , string $time [, DateTimeZone timezone ])
程序風格:
DateTime date_create_from_format (string $format , string $time [, DateTimeZone $timezone ])
的文檔做提供每個參數的細節做好,如果你不熟悉他們,我不會發布這一切。
另一種方法是修改date format
中的時區。時區標識符是(在PHP 5.1.0中添加的)。
這看起來不錯,但文檔說DateTime :: createFromFormat需要PHP 5> = 5.3.0,但我們的PHP版本是PHP 5.2.17。還有其他建議嗎? – Obay 2012-08-08 06:11:43
然後使用[日期格式](http://www.php.net/manual/en/function.date.php)。時區標識符是(在PHP 5.1.0中添加的)。 – RobB 2012-08-08 06:14:44