2015-07-21 47 views
-2

我有一個php日期時間函數,用於將當前日期和時間插入mySQL數據庫。但日期給出了正確的日期,但錯誤的時間給出了任何建議。PHP日期函數給我一個錯誤時間

以下是代碼。

/* 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; 
} 

任何建議來解決這個問題

+1

你需要檢查時區date_default_timezone_get() –

+0

什麼是錯了時間? –

+0

@RowlandShaw:我確定這只是因爲'PHP'設置了不同的'timezne'。 – Mubin

回答

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,但我不知道這是肯定的。

+0

哇,他們終於在SO上得到了拼寫檢查。大 – RiggsFolly

2

設置時區在腳本文件的最開始,使用date_default_timezone_set();

在我的情況下,假設我的時區是印度/馬爾代夫那麼這將是

date_default_timezone_set('Indian/Maldives'); 

有關支持的時區的列表,請參閱http://php.net/manual/en/timezones.php

+0

哦,不公平,在馬爾代夫工作。你如何遠離潛水? – RiggsFolly

+1

可能值得檢查MySQL服務器以及PHP使用的時區。 – RiggsFolly

+0

@RiggsFolly你不會相信,23年以上,還沒有一次潛水 – Ammadu

0

首先檢查你的date_default_timezone_set();是正確的設置或者不那麼試試這樣$booking_time = date('Y-m-d H:i:s');