Вопрос избитый конечно донельзя. Но окончательно запутался.
Есть config.app по умолчанию UTC
Время в homestead UTC.
Datepickerы постоянно сносят на 3 часа. Если поменять в конфиге на Москву, то вообще 6 часов разныцы.
Уже кучу всего перелопатил. Но еще больше запутался. Получилось десятки каких-то трансформаций через casts dates потом на клиенте... лютый винегрет(
Как все упорядочить? Залил на хостинг там тоже utc. Пришлось и в среде разработки все возвращать. Есть же какой-то простой алгоритм?
Через аксессоры/мутаторы выравнивать? Меня даже не столько created/updated беспокоят, а уже мои - время начала и окончания событий.
В бд тестировал и на datetime полях и timestamp ставил. Один результат. Откатывает на 3 часа назад и все тут. Не дается мне это время( был бы признатален
Зависит, как сохраняете. В базу уходит время которое в конфиге Laravel.
Если смотрите базу через PMA, то там скорее всего другое время. Время сервера.
А JS берет время из клиента. И по идее ничего не должно форматировать.
В общем это смотреть надо. Вряд ли вы тут найдете ответ.
Спасибо за ответ. Очень важное замечание. Сейчас на свежую голову попробую переписать цепочку, все же поменяв конфиг ларавеля.
"А JS берет время из клиента. " Вот самая большая головная боль - я уже который пикер пробую - и он все время вычитает 3 часа - то есть ставить UTC время я так понимаю - с Z в конце.
писал-писал комментарий и не отправил.
Добавляю спустя 2.5 часа танцев с бубном( все равно лапша получается...
убрал casts на datetime - и форматированием жестким просто загоняю в базу в формате yyyy-mm-dd HH:mm
поставил luxon и там есть парсинг .fromSQL - и снова переформатирование.
В итоге в пикере - 18 декабрь 2020 10:00 (не склоняется, а кастомные функции не срабатывают как я ожидаю). В значении - Event: { "start": "2020-12-18 10:00:00"} в Базу так и пишется, на выводе - 18 декабря 2020 в 10:00 через luxon
var DateTime = luxon.DateTime;
return DateTime.fromSQL(value)
.setLocale("ru")
.toFormat('dd MMMM yyyy в HH:mm');
},
Не поддается мне время( куча лишних движений. Но что самое удивительное - я поменял в конфиге на Europe/Moscow. Теперь в Базу created пишется в моем времени. Но! поскольку на них стоят cast на datetime - в объекте я получаю снова utc время. Не понимаю что не так... почему такие сложности