如何更改我的一个php文件而不是配置文件中的默认时区?

时间:2013-11-08 00:33:37

标签: php timezone

我必须更改其中一项服务的时区;所以只有一个文件没有配置所有的PHP文件!我怎样才能做到这一点!在该文件中,我正在使用filectime,但显然它正在使用另一个时区!

感谢您的帮助。

如果您需要更多说明,请告诉我

增加:

很抱歉这样说但是在我的城市使用date_default_timezone_set之后,我的问题仍未解决!我有一个文件,其创建时间是:2013年11月7日7:36:50但是在我的城市使用您的时区功能并使用以下代码之后:

 $createTime = filectime($dirPath . '/' . $file);

$ creattime仍然是:2013-11-08T00:36:50Z

所以似乎时区对filectime没有任何影响!除了在我的filectime结果中添加小时(差异小时数)以调整差异之外,还有其他更好的方法吗?

由于

1 个答案:

答案 0 :(得分:2)

你可能会发现php date_default_timezone_set()很有帮助。

  

date_default_timezone_set()设置所有人使用的默认时区   日期/时间功能。

例如:

date_default_timezone_set('America/Los_Angeles');

这是list of supported timezones

编辑:

我忽略了你正在使用filectime()的事实。该函数返回一个unix时间戳,该时间戳不包含任何时区数据。因此date_default_timezone_set()不会影响这些结果。

相反,您可以将日期对象从服务器的时区“转换”为PHP中的不同时区,如下所示:

// for testing purposes, get the timestamp of __FILE__
// replace __FILE__ with the actual file you want to test
$time_created=filectime(__FILE__);

// build date object from original timestamp
$date=new DateTime(date('r',$time_created));

// translate the date object to a new timezone
date_timezone_set($date, timezone_open('America/Los_Angeles'));

// output the original and translated timestamps
echo"<p>Original Timestamp: ".date('r',$time_created)."</p>";
echo"<p>Los Angeles Timestamp: ".date_format($date,'r')."</p>";

这是working example