0

私は自分のmysqldbを設定しました:SET time_zone = 'America/Los_Angeles'; そしてphpで

date_default_timezone_set('America/Los_Angeles');   

しかし、私が追加すると

$time = strtotime ("+2 minutes");

$time2 = gmdate("Y-m-d H:i:s", $time);  

次のようにmysqlから取得すると、dbに1時間間違えます。

        $query ="select UNIX_TIMESTAMP("time"), time2 from tbl; 
        if ($result = $conn->query($query)) {
            while ($row = $result->fetch_assoc()) {
                $unix_time = $row["UNIX_TIMESTAMP("time")"];
                $unix_time2 = $row["time2"];
            }
            $result->close();
        }       ,

echo gmdate("Y-m-d H:i:s", $unix_time)." | ".gmdate("Y-m-d H:i:s", $unix_time2)." "; 

表示:

2010-12-26 01:06:48|2010-12-26 02:06:24

4

1 に答える 1

0

unix_timestamp()現在夏時間モードになっているローカルタイムスタンプを取得します。gmdate()Greenwhich Mean Time、別名UTCで動作し、DSTがないため、1時間の差が生じます。DST対応を使用するdate()代わりにを使用します。gmdate()

于 2010-12-26T10:56:06.337 に答える