PHP, CentOS 6.5 -如何使时间准确


PHP, CentOS 6.5 - how to make the time accurate?

我有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在浏览器中执行。