Laravel / Moment - 如何确定夏令时期间是不是 created_at?

Posted

技术标签:

【中文标题】Laravel / Moment - 如何确定夏令时期间是不是 created_at?【英文标题】:Laravel / Moment - How to determine if created_at during Daylight Savings?Laravel / Moment - 如何确定夏令时期间是否 created_at? 【发布时间】:2019-08-31 20:33:49 【问题描述】:

如何使用 created_at 字段确定我的数据库 (laravel) 中的条目是否在夏令时存储?

我正在尝试计算保存记录与现在之间的时间差,这样我就可以显示3 hours ago49 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 保存在当前日光下的时区

【讨论】:

感谢您的回答。据我所知,这仅适用于未来的新条目。它不会更新数据库中已有的条目。 恐怕不行,因为它不知道你在哪个时区输入了这个时间戳。将来您可以使用 $table->dateTimeTz('created_at');用时区保存

以上是关于Laravel / Moment - 如何确定夏令时期间是不是 created_at?的主要内容,如果未能解决你的问题,请参考以下文章

您如何确定 VBA 中的夏令时?

Moment js 未定义 Laravel

如何确定给定日期是不是在 .NET 2.0 中给定时区的夏令时?

JavaScript、时区和夏令时

针对当前时区调整的不同夏令时的UTC日期[重复]

亚马逊夏令时可靠性