我必须更改我的一个服务的时区;所以只有一个文件不在配置中,所有PHP文件!我怎么能这样!在该文件中,我正在使用 filectime,但显然它使用的是另一个时区!
感谢您的帮助。
如果您需要更多说明,请告诉我
添加:
很抱歉这么说,但仍然使用date_default_timezone_set我的城市后,我的问题没有解决!我有一个文件,其创建是:Nov 07 2013 7:36:50,但是在为我的城市使用时区函数和以下代码之后:
$createTime = filectime($dirPath . '/' . $file);
$creattime仍然是:2013-11-08T00:36:50Z
所以似乎时区对文件时间没有任何影响! 除了在我的文件时间的结果中添加小时(差异小时)来调整差异之外,还有其他更好的方法吗?
谢谢
发现php date_default_timezone_set()
有帮助。
date_default_timezone_set() 设置所有人使用的默认时区 日期/时间函数。
例如:
date_default_timezone_set('America/Los_Angeles');
以下是支持的时区列表。
编辑:
我忽略了您正在使用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>";
这是一个工作示例。