Я только начал использовать расширение Carbon (пока что выглядит довольно мило), но смущен Carbon::now()
функция. Согласно документам, кажется, что эта функция должна отражать текущее время в текущем часовом поясе пользователей, однако я, кажется, получаю время, которое на час опережает время по Гринвичу.
то есть 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
часовой пояс с желаемым часовым поясом как изложено здесь если вы хотите, чтобы PHP использовал другой часовой пояс.
Углерод на основе UTC, поэтому просто делает Carbon::now()
выведет время в формате UTC
Вы должны указать часовой пояс для точного отображения dateTime в вашем городе или районе.
Есть два способа сделать это. Вы можете сделать:
Carbon::now('PST')
ИЛИ ЖЕ Углерод :: сейчас ( ‘Континент / City’) лайк (Carbon::now('America/Montreal')
например
Измените свой часовой пояс в config / app.php
'timezone' => 'YOUR TIME ZONE',