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