Как получить дату и время с сервера
Я хочу получить дату и время с сервера и в соответствии с этим сделать что-то. Для этого я использовал следующий код:
$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"); ?>
Почему это происходит и какие изменения мне нужно делать в моем коде, чтобы я мог получить правильное время сервера.
Ответы
Ответ 1
Вы должны установить часовой пояс для одного из timezones вы хотите.
// 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');
Ответ 2
Попробуйте это -
<?php
date_default_timezone_set('Asia/Kolkata');
$timestamp = time();
$date_time = date("d-m-Y (D) H:i:s", $timestamp);
echo "Current date and local time on this server is $date_time";
?>
Ответ 3
Нет необходимо использовать date_default_timezone_set
для всего script, просто укажите timezone
с объектом DateTime:
$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London')); // Another way
echo $now->format("Y-m-d\TH:i:sO"); // something like "2015-02-11T06:16:47+0100" (ISO 8601)
Ответ 4
Вы должны установить часовой пояс, cf http://www.php.net/manual/en/book.datetime.php
Ответ 5
Для включения расширения PHP Extension выполните шаги.
- Откройте файл xampp/php/php.ini в любом редакторе.
- Поиск "; extension = php_intl.dll"
- добровольно удалите стартовую точку с запятой (;) Например:; extension = php_intl.dll. к.
расширение = php_intl.dll.
- Сохраните файл xampp/php/php.ini.
- Перезапустите xampp/wamp.
Ответ 6
Вы должны установить часовой пояс на тот, который вы хотите. пусть установят индийский часовой пояс
// set default timezone
date_default_timezone_set('Asia/Kolkata');
$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";
Ответ 7
Вы можете использовать функцию "system (string $ command [, int & $ return_var]): string". Для системы Windows ("время") ;, система ("время> output.txt"); поместить ответ в файл output.txt. Если вы планируете развернуть свой веб-сайт на другом сервере, вы можете не захотеть жестко кодировать время сервера, поскольку сервер может перейти в неизвестный часовой пояс. Тогда может быть лучше установить часовой пояс по умолчанию в файле php.ini. Я использую Hostinger, и они позволяют вам настроить это значение php.ini.