更改插入sql中的默认时间

时间:2015-07-10 13:30:08

标签: php mysql sql datetime

我正在将日期和时间插入到我的数据库中,但是时间错了,因为很可能服务器位于其他国家/地区或设置为不同的时区。

    $sqlCheck = "SELECT * FROM Employees WHERE AFNumber='".$_GET["af"]."' AND (".$row['Field']." NOT LIKE '".$_POST[$tempname]."')";
                $result3 = $con->query($sqlCheck);
                if ($result3->num_rows > 0) {
                // output data of each row
                while($row3 = $result3->fetch_assoc()) {
                    $sql3 = "INSERT INTO `Changes` (`Table`, `AFNumber`, `Attribute`, `DateChanged`, `HRUser`, `OldValue`, `NewValue`)

VALUES ('Employees', '".$_GET["af"]."', '".$row["Field"]."', '".date("d/m/Y h:i:sa")."', '$login_session', '.$row3[$tempname]', '$_POST[$tempname]')";
                    if ($con->query($sql3) === TRUE) {
                    echo "New record created successfully";
                    } else {
                    echo "Error: " . $sql3 . "<br>" . $con->error;
                    }
                }
                }

我发现这个功能可以解决这个问题,但是我无法正确地集成它,有什么帮助吗?

<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>

3 个答案:

答案 0 :(得分:0)

默认情况下,datetime中的mysql格式为YYYY-MM-DD HH:MM:SS。使用 -

date("Y-m-d H:i:s")

答案 1 :(得分:0)

以下是我发现以您在代码中指定的格式获取日期的内容:

<?php
    date_default_timezone_set("America/New_York");
    echo "Time is " . date("d/m/Y h:i:sa");
?>

<强>输出

enter image description here

答案 2 :(得分:0)

你可以这样做(例如):

date_default_timezone_set("Europe/Brussels");
$date = date(DateTime::ATOM);

所以你的查询变成了:

$sql3 = "INSERT INTO `Changes` (`Table`, `AFNumber`, `Attribute`,  `DateChanged`, `HRUser`, `OldValue`, `NewValue`)

VALUES ('Employees', '".$_GET["af"]."', '".$row["Field"]."', '". $date."', '$login_session', '.$row3[$tempname]', '$_POST[$tempname]')";

支持所有时区: http://php.net/manual/en/timezones.php