我有以下問題。我有一個字符串,其中包含時間和日期如下: dd/MM/yh hh:mm:ss 這是我在PHP中的。然後我有一個MySQL數據庫,它有一個日期時間格式的列,我需要插入這個值。顯然問題是,格式不同,所以不是實際日期,而是導致字段「0000-00-00 00:00:00」。日期時間格式PHP和MySQL
你能幫我轉換這個字符串,然後正確地插入到MySQL中嗎? 對於MySQL,我使用標準的INSERT INTO命令。
我有以下問題。我有一個字符串,其中包含時間和日期如下: dd/MM/yh hh:mm:ss 這是我在PHP中的。然後我有一個MySQL數據庫,它有一個日期時間格式的列,我需要插入這個值。顯然問題是,格式不同,所以不是實際日期,而是導致字段「0000-00-00 00:00:00」。日期時間格式PHP和MySQL
你能幫我轉換這個字符串,然後正確地插入到MySQL中嗎? 對於MySQL,我使用標準的INSERT INTO命令。
編寫一個函數來轉換日期,
function sqldate($date)
{
$sql_date = date('Y-m-d H:i:s',strtotime($date));
return $sql_date;
}
,且查詢的樣子,
$query = "INSERT INTO tableName (dateColumn) VALUES('".sqldate($date)."') ";
可以使用STR_TO_DATE()轉換它與你INSERT
聲明,例如,沿着。
INSERT INTO tableName (dateColumn)
VALUES(STR_TO_DATE('dd/MM/yy hh:mm:ss','%d/%m/%y %H:%i:%s'))
試試這個:
$parsedDate = date('Y-m-d H:i:s', strtotime($yourDate));
// Insert $parsedDate into your table column Date
strtotime()會將xx/yy/zz視爲美國格式的日期(mm/dd/yy)而不是英國格式(dd/mm/yy)...您需要用' - 替換'/' '英國日期才能被正確識別(dd-mm-yy) –
從DATETIME
文檔:
MySQL的檢索和顯示
DATETIME
VALU es的格式爲YYYY-MM-DD HH:MM:SS
。
我會使用PHP的DateTime類和DateTime::createFromFormat()
方法,並將數據轉換到MySQL兼容的日期字符串,像這樣:
$date = DateTime::createFromFormat('d/m/Y H:i:s', $yourDateString);
$dateToBeInserted = $date->format('Y-m-d H:i:s');
聽起來像是你將不得不解析字符串並根據您獲得的值建立新的日期?看起來並不那麼困難。 – MightyPork