我有CentOS,它设置为比利时时间。
# cat /etc/redhat-release
CentOS release 6.5 (Final)
# php --version
PHP 5.3.3 (cli) (built: Oct 30 2014 20:12:53)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
# ntpdate be.pool.ntp.org
现在我有一个用户从:
United States
United Kingdom
Japan
Australia
UAE
当他们打开我的页面时,他们都看到错误的时间(显示比利时时间)
test.php:
echo date('Y-m-d H:i:s');
我怎么能显示他们ntpdate be.pool.ntp.org
像准确的确切时间那里的国家地区,也自动调整它时,时间变化1小时+/-(而不是显示默认服务器时间)?
最好的方法是让应用程序在UTC中工作。如果您正在存储任何日期,也将它们存储在UTC中。这将允许您使用JavaScript从用户时区计算本地时间。你可以使用像moment.js这样的库来完成:
http://momentjs.com/timezone/如果你只是显示当前时间,只使用JavaScript。
<script>
var date = new Date();
document.getElementById("date-time").innerHTML = date.toDateString();
</script>
这是最简单的解决方案,因为PHP不知道客户端的时区,而JavaScript在浏览器中执行。