Форматирование часового пояса для даты Carbon
Я пытаюсь установить часовой пояс для даты в объекте Carbon
. На локальной машине всё работает отлично, но на продакшн-сервере возникает ошибка Bad timezone
.
Я пробовал следующие варианты:
$date->setTimezone('7');
$date->setTimezone('+7');
$date->setTimezone('7:00');
$date->setTimezone('+7:00');
$date->setTimezone('UTC 7');
$date->setTimezone('UTC +7');
$date->setTimezone('UTC 7:00');
$date->setTimezone('UTC +7:00');
Не понимаю, почему возникает эта ошибка на моём продакшн-сервере. Не могу найти документацию о том, какой "правильный" формат следует использовать. Может кто-то помочь?
Дополнительно: на локальной машине у меня Windows, а на продакшн-сервере - Ubuntu.
2 ответ(ов)
Вы можете изменить часовой пояс с помощью следующего кода:
$timestamp = '2014-02-06 16:34:00';
$date = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Stockholm');
$date->setTimezone('UTC');
Этот формат работает корректно как на моем локальном проекте (Ubuntu), так и на продакшн-сервере (Redhat).
Обратите внимание, что для использования Carbon
необходимо предварительно установить библиотеку с помощью Composer, если она еще не установлена. Убедитесь также, что у вас правильно настроены часовые пояса в вашем окружении.
Для тех, кто интересуется, вы можете связать часовой пояс следующим образом:
Carbon::now()->timezone('Europe/Stockholm');
Это позволит вам получить текущее время с учётом указанного часового пояса.
Как создать пользовательские вспомогательные функции в Laravel
Преобразование UTC-дате в локальное время в PHP
Laravel 5: Ошибка SQLSTATE[HY000] [1045] Доступ запрещён для пользователя 'homestead'@'localhost' (используется пароль: ДА)
Laravel валидация: проверка существования с условием по дополнительному столбцу - пользовательское правило валидации
В Laravel, как получить список всех файлов в публичной папке?