有没有办法使用该date()
函数并让它返回特定时区的当前日期,而不是服务器日期?
我知道我可以使用:
date_default_timezone_set('Asia/Tokyo');
date('j F Y');
但是,我在大型应用程序的上下文中执行此操作,并且执行此date_default_timezone_set()
操作可能会使脚本其余部分中的其他日期操作表现不同。
有没有办法使用该date()
函数并让它返回特定时区的当前日期,而不是服务器日期?
我知道我可以使用:
date_default_timezone_set('Asia/Tokyo');
date('j F Y');
但是,我在大型应用程序的上下文中执行此操作,并且执行此date_default_timezone_set()
操作可能会使脚本其余部分中的其他日期操作表现不同。
使用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
该类,它允许您在创建时指定时区(默认为 UTC),或者通过使用setTimezone()
来更改渲染时区。