有没有办法使用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