Я только начал использовать расширение Carbon (кажется довольно приятным до сих пор), но я запутался в функции Carbon::now() . Согласно документам, кажется, что эта функция должна отражать текущее время в текущем часовом поясе пользователей, однако, похоже, я получаю время, которое на час опережает GMT.
т.е. Carbon::now() говорит 2015-01-01 17:26:46 когда я на PST, и это на самом деле в настоящее время 2015-01-01 08:26:46 .
Должен ли я обнаруживать и устанавливать локальный часовой пояс пользователей для всех экземпляров?
Что дает? (У меня очень хорошо может быть фундаментальное непонимание того, как сайт получает местное время для пользователей)
Это связано с тем, что часовой пояс вашего сервера отличается от вашего собственного.
Это может быть вызвано:
Часовой пояс сервера, по-вашему, представляет собой CET (Центральноевропейское время), которое составляет +1 GMT.
Чтобы исправить это, вы должны изменить часовой пояс в файле php.ini (инструкции указаны из ссылки):
php.ini date.timezone = "US / Central"
В качестве альтернативы вы должны заменить часовой пояс US/Central на требуемый часовой пояс, как описано здесь, если вы хотите, чтобы PHP использовал другой часовой пояс.
Углерод основан на UTC, поэтому просто делать Carbon::now() будет выводить время в формате UTC
Вы должны указать часовой пояс для точного отражения даты в вашем городе или области.
Есть два способа сделать это. Вы можете:
Carbon::now('PST') ИЛИ Carbon :: now ('Continent / City'), например (Carbon::now('America/Montreal') например