2015-05-19 2 views
1

У меня есть CentOS и ее установка в Бельгии.PHP, CentOS 6.5 - как сделать точное время?

# 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 час +/- (вместо этого отображается время по умолчанию сервера)?

+0

Вам нужно будет определить часовой пояс, в котором они находятся, прежде чем вы сможете изменить часовой пояс в PHP. У вас есть способ определить это? –

+0

Я могу узнать с точки зрения посетителя, что он исходит из: Соединенных Штатов или Соединенного Королевства или Объединенного арабского амирата или Японии или Австралии. (у меня есть этот детектор) – YumYumYum

+1

Самый простой ответ - использовать [объекты DateTime] (http://www.php.net/manual/en/datetime.settimezone.php) –

ответ

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 является, как это выполняется в браузере.

Смежные вопросы