Carbon now time wrong

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

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

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

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

2 ответов


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

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

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

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

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

  1. открыть
  2. добавьте следующую строку кода поверх вашего php.ini-файл:

дата.часовой пояс = "US / Central"

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


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

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

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

Carbon::now('PST') или Carbon:: now ('континент/город') как