У меня проблемы с отображением правильного времени. С настройкой UT C по умолчанию в config/app.php
у меня разница в 4 часа. Когда я устанавливаю местный часовой пояс, у меня разница в 2 часа. Я предполагаю, что проблема возникает из-за того, что в моей базе данных установлен часовой пояс CEST.
mysql> SELECT @@system_time_zone;
+--------------------+
| @@system_time_zone |
+--------------------+
| CEST |
+--------------------+
1 row in set (0.00 sec)
Страница, над которой я работаю, будет использоваться локально, поэтому я бы хотел, чтобы в базе данных было то же время, что и для базы данных. отображается на странице. Время корректно сохраняется в базе данных, изменяется только отображаемое время.
DB -> Laravel
2020-04-21 16:55:08 -> 2020-04-21T14:55:08.000000Z
Интересно, является ли ручная модификация хорошим подходом. В этом случае я не могу изменить часовой пояс в базе данных на сервере. Есть ли какое-либо решение или обходной путь?
ОБНОВЛЕНИЕ # 1
Это решение работает правильно, если я выбираю время для блейд-файла.
public function getCreatedAtAttribute($value) {
return \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $value, 'Europe/Warsaw');
}
Когда я получаю запись использование ax ios createFromFormat не принимает значение $ без обработки. К сожалению, это решение не отображает правильное время.
public function getCreatedAtAttribute($value) {
$data = \Carbon\Carbon::parse($value);
return $data::createFromFormat('Y-m-d H:i:s', $data, 'Europe/Warsaw');
}
ОБНОВЛЕНИЕ # 2
Я заметил, что после установки местного часового пояса в config/app.php
время отображается правильно в blade.php
файлы файлы без каких-либо аксессоров. К сожалению, когда я загружаю записи, используя ax ios Laravel, возвращается неправильное время, несмотря на то, что оно правильно сохраняется в базе данных. Следующий метод доступа работает нормально.
Метод метода доступа:
public function getCreatedAtAttribute($value) {
$data = \Carbon\Carbon::parse($value);
return $data->timezone('Europe/Warsaw');
}
Я хотел бы получить время точно так же, как в базе данных. В противном случае мне придется добавить средства доступа к каждой модели.