2014-01-12 2 views
1

Здравствуйте, мне нужно экономить время, когда пользователь получает регистрацию. Я пытаюсь использовать код в PHP для создания определенного времени в Индии.Как получить правильную дату и время конкретной страны в php

$timezone = new DateTimeZone("Asia/Kolkata"); 
     $date = new DateTime(); 
     $date->setTimezone($timezone); 
     $dtobj = $date->format('Y-m-d H:i:s'); 
echo $dtobj; 

он работает, но не показывает правильное время. Я использую сервер Godaddy. Время, выдаваемое кодом 2014-01-13 10:21:29, но фактическое время 2014-01-13 02:20:55. Я ищу в Google и стараюсь почти все функции, но получаю такую ​​же разницу. Что я должен делать для получения точного времени.

+0

Проверьте сервер времени, я думаю, это ваша проблема – Perry

ответ

1

У меня возникло много вопросов, основанных на времени, которые были устранены путем изменения файла php.ini сервера (надеюсь, у вас есть доступ к этому?). Я обнаружил, что установка часового пояса в другом месте (т. Е. Изнутри скрипта) оказалась бесплодной.

Чтобы отредактировать файл php.ini:

  1. Найдите свой INI файл (обычно /etc/php5/apache2/php.ini или аналогичный)
  2. дорожки вниз по линии ;date.timezone = (обычно выравнивают 1018)
  3. раскомментируйте настройки (удалить ведущие ;)
  4. Добавить Ваш часовой пояс, например:
  5. Перезапустите Apache sudo service apache2 restart
1

Использование функции date_default_timezone_set(), чтобы установить часовой пояс по умолчанию:

<?php 

date_default_timezone_set('UTC'); 

$date = new DateTime('now'); 
echo 'UTC:  '.$date->format('Y-m-d H:i:s')."\n"; 

$date = new DateTime('now', new DateTimeZone('Europe/Lisbon')); 
echo 'Lisbon: '.$date->format('Y-m-d H:i:s')."\n"; 

$date = new DateTime('now', new DateTimeZone('Asia/Kolkata')); 
echo 'Kolkata: '.$date->format('Y-m-d H:i:s')."\n"; 

?> 

Выход:

UTC:  2014-04-05 13:45:56 
Lisbon: 2014-04-05 14:45:56 
Kolkata: 2014-04-05 19:15:56 
Смежные вопросы