我必须更改其中一项服务的时区;所以只有一个文件没有配置所有的PHP文件!我怎样才能做到这一点!在该文件中,我正在使用filectime,但显然它正在使用另一个时区!
感谢您的帮助。
如果您需要更多说明,请告诉我
增加:
很抱歉这样说但是在我的城市使用date_default_timezone_set之后,我的问题仍未解决!我有一个文件,其创建时间是:2013年11月7日7:36:50但是在我的城市使用您的时区功能并使用以下代码之后:
$createTime = filectime($dirPath . '/' . $file);
$ creattime仍然是:2013-11-08T00:36:50Z
所以似乎时区对filectime没有任何影响!除了在我的filectime结果中添加小时(差异小时数)以调整差异之外,还有其他更好的方法吗?
由于
答案 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>";