Углерод сейчас ошибается

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

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

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

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

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

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

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

Часовой пояс сервера, по-вашему, представляет собой CET (Центральноевропейское время), которое составляет +1 GMT.

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

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

date.timezone = "US / Central"

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

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

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

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

Carbon::now('PST') ИЛИ Carbon :: now ('Continent / City'), например (Carbon::now('America/Montreal') например