Php 既然夏令时已将所有日期更改为前一天,如何更正使用mktime()存储的日期

Php 既然夏令时已将所有日期更改为前一天,如何更正使用mktime()存储的日期,php,time,mktime,Php,Time,Mktime,我编写了一个web应用程序,它使用以下内容存储日期: $event->date = mktime(0, 0, 0, $month, $day, $year); 其中,$month、$day、$year来自下拉选择器,即其中的整数值。因此,我存储了用户选择的当天午夜表示的日期 这个周末我们有夏令时,现在所有自上次更改时钟以来添加的事件现在都显示为前一天的date('djsm Y',$event->date) 我的问题有两个方面: 如何修复数据库中的当前日期,以便将其输出为正确的日期?我是

我编写了一个web应用程序,它使用以下内容存储日期:

$event->date = mktime(0, 0, 0, $month, $day, $year);
其中,$month、$day、$year来自下拉选择器,即其中的整数值。因此,我存储了用户选择的当天午夜表示的日期

这个周末我们有夏令时,现在所有自上次更改时钟以来添加的事件现在都显示为前一天的
date('djsm Y',$event->date)

我的问题有两个方面:

  • 如何修复数据库中的当前日期,以便将其输出为正确的日期?我是否应该一次性在DB中的所有时间中添加一个小时

  • 我应该如何存储从这一点开始的日期?我应该像这样在午夜加一小时吗<代码>$event->date=mktime(1,0,0,$month,$day,$year)

1)使用一些SQL查询来更新时间戳
2) 您应该始终使用UTC时间或epoch,并在客户端请求时动态执行区域设置转换。它将使您无需使用区域设置。

使用
DateTime
库。我相信它会帮你解决这个问题。