2015-07-10 65 views
1

我插入日期和时间到我的数据库,但我得到的时间错了,因为最有可能的服务器是在另一个国家或设置为不同的时区。更改默认时间插入sql

$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"); 
?> 
+0

如果您在MySQL设置字段给它的日期时间字段改变为varchar的说,50个字符,这样无论你格式化您的日期功能它可以记录到数据库中 –

回答

0

mysqldatetime格式是YYYY-MM-DD HH:MM:SS默认。使用 -

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

我的代码中的格式是我想要的方式。 – mikeb

+1

如果该列是'datetime',则需要此格式。 –

0

这里是我发现了获取日期中,你已经在你的代码中指定的格式:

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

输出

enter image description here

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