【发布时间】:2019-09-09 04:10:45
【问题描述】:
我的服务器位于另一个时区,当我将 mysql 服务器设置为我的时区并显示当前时间时,它显示的时间为负 1 小时,就好像我们仍处于冬季时间一样,尽管我们已将我的时区移至夏季时间 DTS . 我的代码,在 php 中:
$sql->query("SET time_zone= '+02:00' ;"); //sets mysql timezone
$result = $sql->query("SELECT NOW();");
while($row = mysqli_fetch_array($result)){
echo "<br/>Database Date: ".$row[0]; //display current mysql time
}
date_default_timezone_set("Asia/Jerusalem"); //sets php timezone
echo "<br/>PHP Date: ".date('Y-m-d H:i:s')."<br/>";
现在php时间显示完美,mysql时间显示提前一小时。(冬季时间) 我需要修复 mysql 日期,我使用的是在插入表时自动更新的时间戳。我确信必须有一个选项来启用夏令时,只是从未遇到过。
【问题讨论】:
-
Jerusalem是 +3... -
我不明白你的问题。夏令时使我们穿越时空。 MySQL 不这样做。如果您希望未来多出一小时,您必须自己添加该小时。最好的选择是在 PHP 中格式化时间显示
-
SET time_zone= 'Asia/Jerusalem'?使用预先确定的偏移量是不正确的,它会忽略 DST 规则。