PHP скрипт для изменения времени сервера

#php #server

#php #сервер

Вопрос:

Я использую HostGator для некоторых клиентских веб-сайтов, и это общая настройка облачного сервера. Мне нужно запустить этот скрипт:

 <?php
date_default_timezone_set("America/Los_Angeles");
?>
  

потому что время сервера настроено на часовой пояс, который нигде не близок к США.. Как мне выполнить этот скрипт, чтобы время сервера изменилось.. Они не поддерживают (HostGator) изменение времени сервера, но предлагают запустить приведенный выше скрипт.

Любая помощь будет оценена.

Комментарии:

1. Привет, Джейсон, тебе нужно запустить эту команду в исполняемом скрипте, то есть она должна быть в твоем файле «…. php» в виде кода.

Ответ №1:

Серверы, предполагающие, что они работают в географически разных частях мира, будут иметь разные даты и время, в зависимости от их часового пояса. Что происходит при переходе на сервер, находящийся в другом часовом поясе? Все ваши даты и время будут сдвинуты, что может вызвать некоторые довольно серьезные проблемы.

Вы также можете столкнуться со сценариями, в которых сервер приложений (скажем, PHP) работает в одном часовом поясе, в то время как сервер базы данных (скажем, PostgreSQL) работает в отдельном часовом поясе — что вы делаете тогда, когда некоторые даты и времени могут быть сгенерированы PHP, а другие — PostgreSQL?

Ответ заключается в том, чтобы учитывать timezones .

Языки программирования, такие как PHP и Python, а также базы данных, такие как MySQL и PostgreSQL, обладают способностью работать не только в жестко привязанном к серверу времени, но и в более гибких часовых поясах.

В таких базах данных, как PostgreSQL, вы можете установить тип данных timestamp with time zone равным .

В PHP вы можете использовать часовые пояса, чтобы исправить разницу между датой и временем, которые сервер отображает по умолчанию, и тем, что может ожидать пользователь.

Вот пример на PHP, который позволяет:

  • Получить текущую дату и время сервера
  • Преобразуйте дату и время сервера в часовой пояс, в котором находится пользователь
  • Отображение преобразованного datetime для пользователя
 <?php
// Set the user's timezone:
$user_timezone = 'America/Detroit';

// Get the current datetime
$datetime = new DateTime();

// Display the server's datetime in human-readable and UNIX timestamp formats
print(
    "nServer's Datetime: " . $datetime->format('Y-m-d H:i:s') . "" .
    "nServer's Timestamp: " . $datetime->getTimestamp() . "" .
);

// Instantiate a DateTimeZone object representing the user's timezone
$timezone = new DateTimeZone( $user_timezone );

// Set the timezone on that datetime to be the user's timezone
$datetime->setTimezone( $timezone );

// Display the converted datetime to the user in human-readable format:
print(
    "nUser's Datetime: " . $datetime->format('Y-m-d H:i:s') . "" .
    "nUsers's Timestamp: " . $datetime->getTimestamp() . "" .
);
?>  

Отказ от ответственности, я не тестировал ни один из приведенных выше кодов, только созданный из ссылок на PHP:

Если вы не уверены, что $user_timezone должно быть установлено, запустите эту команду на php и просмотрите результат:

 <?php
print_r(
    timezone_identifiers_list()
);
>?>