У меня есть вопрос относительно часового пояса для временных меток.
Как используется часовой пояс в app.php? Я понял, что поведение отличается, если я создаю метку времени с использованием Carbon или запрашиваю значение (метку времени) из БД.
Примечание: MySQL использует часовой пояс системы, который GMT + 8 или Asia / Kuala_Lumpur.
- Пример # 1
- Установить часовой пояс = "UTC" в app.php
- Создать экземпляр углерода
>>> new Carbon\Carbon;
=> Carbon\Carbon @1572404830 {#3496
date: 2019-10-30 03:07:10.625282 UTC (+00:00),
}
>>>
Пример # 2
- Установить часовой пояс = "Asia / Kuala_Lumpur" в app.php
- Создать экземпляр Carbon
>>> new Carbon\Carbon;
=> Carbon\Carbon @1572404816 {#3520
date: 2019-10-30 11:06:56.316851 Asia/Kuala_Lumpur (+08:00),
}
Например, № 1 и № 2, это для меня, ожидается. Вы получили другое значение в зависимости от часового пояса. Вещи стали немного страннее (по крайней мере для меня), когда мы запрашиваем метку времени из БД.
Пример # 3
- Установить часовой пояс = "UTC" в app.php
- Запрос из БД
>>> RefCyberCity::whereDataSource('ccms')->take(1)->first()->updated_at
=> Illuminate\Support\Carbon @1572083605 {#3531
date: 2019-10-26 09:53:25.0 UTC (+00:00),
}
Пример # 4
- Установить часовой пояс = "Asia / Kuala_Lumpur" в app.php
- Запрос из БД
>>> RefCyberCity::whereDataSource('ccms')->take(1)->first()->updated_at
[!] Aliasing 'RefCyberCity' to 'App\RefCyberCity' for this Tinker session.
=> Illuminate\Support\Carbon @1572054805 {#3491
date: 2019-10-26 09:53:25.0 Asia/Kuala_Lumpur (+08:00),
}
Мы можем видеть, что оба выводят 2019-10-26 09: 53: 25.0, но часовой пояс отличается.