make date()返回特定于时区的日期/时间,而不使用date_default_timezone_set()

时间:2012-08-08 05:28:36

标签: php

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

我知道我可以使用:

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

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

2 个答案:

答案 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()更改渲染时区。