Углерод сейчас не так

Я только начал использовать расширение Carbon (пока что выглядит довольно мило), но смущен Carbon::now() функция. Согласно документам, кажется, что эта функция должна отражать текущее время в текущем часовом поясе пользователей, однако я, кажется, получаю время, которое на час опережает время по Гринвичу.

то есть Carbon::now() говорит 2015-01-01 17:26:46 когда я нахожусь на PST, и это на самом деле в настоящее время 2015-01-01 08:26:46,

Нужно ли обнаруживать и указывать местный часовой пояс пользователя для всех случаев?

Что дает? (У меня очень хорошо может быть фундаментальное недопонимание того, как веб-сайт получает пользователей по местному времени)

9

Решение

Это происходит потому, что часовой пояс вашего сервера отличается от вашего собственного.

Это может быть вызвано:

  • Неправильная настройка сервера
  • Физическое расположение сервера в другом часовом поясе
  • Политики вашего провайдера также могут быть причиной этого. Если ваш провайдер решит, что он хочет работать в одном и том же часовом поясе на каждом сервере, который у него есть по всему миру, это вызовет проблемы.

Часовой пояс сервера выглядит как CET (центральноевропейское время), равное +1 GMT, как вы описали.

Чтобы это исправить, вы должны изменить часовой пояс в вашем php.ini файл (инструкции по ссылке):

  1. Открыть свой php.ini файл
  2. Добавьте следующую строку кода в начало вашего файла php.ini:

date.timezone = «США / Центральный»

В качестве альтернативы вы должны заменить US/Central часовой пояс с желаемым часовым поясом как изложено здесь если вы хотите, чтобы PHP использовал другой часовой пояс.

8

Другие решения

Углерод на основе UTC, поэтому просто делает Carbon::now() выведет время в формате UTC

Вы должны указать часовой пояс для точного отображения dateTime в вашем городе или районе.

Есть два способа сделать это. Вы можете сделать:

Carbon::now('PST') ИЛИ ЖЕ Углерод :: сейчас ( ‘Континент / City’) лайк (Carbon::now('America/Montreal') например

11

Измените свой часовой пояс в config / app.php

 'timezone' => 'YOUR TIME ZONE',
0
По вопросам рекламы [email protected]