Я хочу получить дату и время с сервера и в соответствии с этим сделать что-то. Для этого я использовал следующий код:
$info = getdate(); $date = $info['mday']; $month = $info['mon']; $year = $info['year']; $hour = $info['hours']; $min = $info['minutes']; $sec = $info['seconds']; $current_date = "$date/$month/$year == $hour:$min:$sec";
Этот код возвращает правильную дату, но проблема в том, что то, что я вижу в моем cpanel (время сервера), является diff. чем то, что я получаю от кода. В cpanel время – CDT, а из кода – UTC, который я подтверждаю, используя следующий код
<?php echo date("r == e"); ?>
Почему это происходит и какие изменения я должен делать в своем коде, чтобы я мог получить правильное время сервера.
Вы должны установить часовой пояс на тот час, который вы хотите.
// set default timezone date_default_timezone_set('America/Chicago'); // CDT $info = getdate(); $date = $info['mday']; $month = $info['mon']; $year = $info['year']; $hour = $info['hours']; $min = $info['minutes']; $sec = $info['seconds']; $current_date = "$date/$month/$year == $hour:$min:$sec";
Или гораздо более короткая версия:
// set default timezone date_default_timezone_set('America/Chicago'); // CDT $current_date = date('d/m/Y == H:i:s');
Попробуй это –
<?php date_default_timezone_set('Asia/Kolkata'); $timestamp = time(); $date_time = date("dmY (D) H:i:s", $timestamp); echo "Current date and local time on this server is $date_time"; ?>
Вы должны установить часовой пояс, cf http://www.php.net/manual/en/book.datetime.php
Не нужно использовать date_default_timezone_set
для всего скрипта, просто укажите timezone
вы хотите, с объектом DateTime:
$now = new DateTime(null, new DateTimeZone('America/New_York')); $now->setTimezone(new DateTimeZone('Europe/London')); // Another way echo $now->format("Ymd\TH:i:sO"); // something like "2015-02-11T06:16:47+0100" (ISO 8601)
Чтобы включить функцию расширения PHP, следуйте инструкциям.