我有一个php datetime函数,用于将当前日期和时间插入mySQL数据库。但是,日期给出了正确的日期,但错误的时间是任何建议。
以下是代码。
/* Get Current Date and Time for the bookking_time field */
$booking_time=new DateTime();
$booking_time = $booking_time -> format("Y-m-d H:i:s");
// Create connection
$con = new mysqli($servername, $username, $password, $dbname , 3306);
if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);
}
//mysql_select_db("$database", $con);
$sql= "INSERT INTO data_centre_users (fisrt_name,last_name,request,purpose,description,booking_time,approved)
VALUES ('$first','$last','$request','$purpose','$description','$booking_time','$approval')";
if ($con->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
解决问题的任何建议
答案 0 :(得分:2)
使用date_default_timezone_set();
在脚本文件的最开头设置时区假设在我的情况下,我的时区是印度/马尔代夫,那么它将是
date_default_timezone_set('Indian/Maldives');
有关支持的时区列表,请参阅http://php.net/manual/en/timezones.php
答案 1 :(得分:0)
使用SQL语法NOW()
获取日期和时间可能更简单。
$sql= "INSERT INTO data_centre_users
(fisrt_name,last_name,request,purpose,
description,booking_time,approved)
VALUES ('$first','$last','$request',
'$purpose', '$description', NOW(), '$approval')";
你可能也拼错了fisrt_name
,但我肯定不知道。
答案 2 :(得分:0)
首先检查您的date_default_timezone_set();
是否设置正确然后尝试$booking_time = date('Y-m-d H:i:s');