在 PHP 中将时区设置为 UTC (0)
为什么这有效?
date_default_timezone_set('Australia/Currie');
但这似乎根本没有任何效果?
date_default_timezone_set('UTC');
当将时区设置为 UTC 时,该值不会改变:
echo date('Y-m-d H:i:s', time());
我使用的是 php 5.2.13,我的服务器的时区是:
$server_tz = date_default_timezone_get();
echo $server_tz; //outputs 'America/Guayaquil'
这是原始代码:
echo time() . "<br>\n";
date_default_timezone_set('UTC');
echo time() . "<br>\n";
输出:
1317235130
1317235130
Why does this work?
date_default_timezone_set('Australia/Currie');
But this doesn't seem to take any effect at all?
date_default_timezone_set('UTC');
This value doesn't change when setting the timezone to UTC:
echo date('Y-m-d H:i:s', time());
I'm using php 5.2.13, and the timezone of my server is:
$server_tz = date_default_timezone_get();
echo $server_tz; //outputs 'America/Guayaquil'
This is the original code:
echo time() . "<br>\n";
date_default_timezone_set('UTC');
echo time() . "<br>\n";
Output:
1317235130
1317235130
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
问题是您显示的是
time()
,它是基于 GMT/UTC 的 UNIX 时间戳。这就是为什么它不会改变。另一方面,date()
根据该时间戳格式化时间。时间戳是自 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)以来的秒数。
The problem is that you're displaying
time()
, which is a UNIX timestamp based on GMT/UTC. That’s why it doesn’t change.date()
on the other hand, formats the time based on that timestamp.A timestamp is the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).
UTC
绝对是一个有效的时区。它只是协调世界时的缩写。此外,请记住date_default_timezone_set
接受以下值之一:PHP 中的时区位于 http://www.php.net/manual/en/timezones.php
UTC
is definitely a valid timezone. It is simply an abbreviation for Coordinated Universal Time. In addition, remember thatdate_default_timezone_set
accepts one of the following values:Timezones in PHP at http://www.php.net/manual/en/timezones.php
“UTC”是您系统上的有效时区标识符吗?
Is 'UTC' a valid timezone identifier on your system?
在 PHP 日期时间中(PHP >= 5.3)
In PHP DateTime (PHP >= 5.3)
您可以随时检查此维护的时区列表
https://www.php.net /manual/en/function.date.php
You can always check this maintained list to timezones
https://www.php.net/manual/en/function.date.php