我有以下问题。我有一个字符串,其中包含时间和日期如下: 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