0

有没有办法使用该date()函数并让它返回特定时区的当前日期,而不是服务器日期?

我知道我可以使用:

date_default_timezone_set('Asia/Tokyo');
date('j F Y');

但是,我在大型应用程序的上下文中执行此操作,并且执行此date_default_timezone_set()操作可能会使脚本其余部分中的其他日期操作表现不同。

4

2 回答 2

2

使用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 中添加)。

于 2012-08-08T05:31:58.033 回答
0

请改用DateTime该类,它允许您在创建时指定时区(默认为 UTC),或者通过使用setTimezone()来更改渲染时区。

于 2012-08-08T05:31:25.523 回答