2015-07-10 131 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