#javascript #php #laravel #momentjs #dst
#javascript #php #laravel #momentjs #летнее время
Вопрос:
Как мне определить, была ли сохранена запись в моей базе данных ( laravel
) во время перехода на летнее время, используя created_at
поле?
Я пытаюсь вычислить разницу во времени между тем, когда запись была сохранена, и сейчас, чтобы я мог сделать, может показать что-то вроде 3 hours ago
или 49 minutes ago
. Это работало нормально, пока пару недель назад Великобритания не перешла на летнее время, и теперь все время увеличивается на 1 час.
Я использую moment, чтобы показать результат следующим образом;
getElapsedString(from) {
return moment(from).fromNow();
}
Данные хранятся в моей базе данных в следующем формате, и это то, что передается в вышеуказанную функцию как from
;
2019-04-10 09:27:48
Я ничего не делаю с датами, когда они сохраняются. Это обрабатывается Laravel.
Ответ №1:
Внутри config/app.php существует
'timezone' => ''
вы можете установить его на:
'timezone' => 'America/New_York'
Он установит часовой пояс по умолчанию и сохранит created_at с этим часовым поясом с текущим дневным светом
Комментарии:
1. Спасибо за ответ. Насколько мне известно, это будет работать только для новых записей в будущем. Он не будет обновлять записи, уже имеющиеся в базе данных.
2. я боюсь, что это не сработает, потому что он не знает, в каком часовом поясе вы ввели эту временную метку. в будущем вы можете использовать $table->dateTimeTz(‘created_at’); для сохранения с указанием часового пояса