Я разработал приложение, которое записывает, когда определенные записи были изменены и созданы, поэтому в основном мы используем time()
функция для записи, когда изменение сохраняется.
Я нахожусь в Великобритании, поэтому мой часовой пояс должен быть GMT. Однако в Великобритании мы используем DST, поэтому летом мы больше не в GMT, а в BST.
Как бы я изменил часовой пояс, чтобы использовать BST (который GMT +1). Я хотел бы объявить это в моем php-файле, чтобы его можно было легко изменить. Вот что я имею на данный момент:
date_default_timezone_set("UTC");
Когда я изменяю это на:
date_default_timezone_set("BST");
Я получаю ошибку php Timezone ID 'BST' is invalid
и когда я изменяю его на Европу / Лондон, он все равно остается как GMT, а не как BST
Вы бы установить часовой пояс на Europe/London
, который автоматически переходит между GMT и BST в соответствующие даты. Часовой пояс включает в себя эту информацию, это в основном точка часовых поясов (в смысле PHP).
Руководство PHP удобно включает в себя именно это как образец:
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
Array
(
[0] => Array
(
[ts] => -9223372036854775808
[time] => -292277022657-01-27T08:29:52+0000
[offset] => 3600
[isdst] => 1
[abbr] => BST
)
[1] => Array
(
[ts] => -1691964000
[time] => 1916-05-21T02:00:00+0000
[offset] => 3600
[isdst] => 1
[abbr] => BST
)
[2] => Array
(
[ts] => -1680472800
[time] => 1916-10-01T02:00:00+0000
[offset] => 0
[isdst] =>
[abbr] => GMT
)
)
time()
Функция возвращает метку времени Unix, которая всегда будет основана на UTC (то же самое, что и GMT). Это было бы недопустимо для того, чтобы это было приспособлено для BST или для любого другого часового пояса.
Существуют и другие функции для работы с местным временем и для преобразования метки времени Unix в строку для отображения. Вот где вы используете Europe/London
часовой пояс.
BST
недопустимо, поскольку оно может обозначать «стандартное время Бангладеш» или несколько других часовых поясов. В общем, не полагайтесь на сокращения часовых поясов.