PHP/MySql如何将dateTime从字符串转换为日期
我正在尝试向数据库中插入一些数据。数据还包含一个日期和时间。所以我需要通过转换成MySql DateTime格式来插入它。我尝试使用PHP/MySql如何将dateTime从字符串转换为日期,php,mysql,sql,datetime,Php,Mysql,Sql,Datetime,我正在尝试向数据库中插入一些数据。数据还包含一个日期和时间。所以我需要通过转换成MySql DateTime格式来插入它。我尝试使用STR\u TO\u DATE,但它返回的日期和时间没有AM或PM 执行的代码: $sql = "INSERT into `projtemp` (`user_id`,`temp_name`,`processes`,`added`) VALUES('$uid','" . clean_data($tempName) . "','" . serialize($proces
STR\u TO\u DATE
,但它返回的日期和时间没有AM或PM
执行的代码:
$sql = "INSERT into `projtemp` (`user_id`,`temp_name`,`processes`,`added`) VALUES('$uid','" . clean_data($tempName) . "','" . serialize($process) . "',STR_TO_DATE('$added', '%e/%c/%Y %r'))";
$result = $mysqli->query($sql) or die("Sql Error :" . $mysqli->error);
查询:
INSERT INTO `projtemp` (`user_id`,`temp_name`,`processes`,`added`) VALUES('0000000001','dsfwfwrfer','a:5:{i:0;s:11:"rgergergerg";i:1;s:29:"software requirement analysis";i:2;s:8:"regergre";i:3;s:16:"eqgerrrrrrrrrger";i:4;s:14:"ergergggggrreg";}',STR_TO_DATE('15/1/2014 11:34:21 AM', '%e/%c/%Y %r'))
结果行:
我提到,他们说,%r
在时间
后面附加AM
或PM
,但这对我不起作用。有人能帮我解决这个问题吗。试试下面的代码:
$timestamp = strtotime($added);
然后使用date()将其转换为timestamp/datetime格式
对于没有上午/下午的日期:
$datetime = date("Y-m-d H:i:s", strtotime($added));
上午/下午:
$datetime = date("Y-m-d H:i:s A", strtotime($added));
最后,您的SQL语句将是:
$sql = "INSERT into `projtemp` (`user_id`,`temp_name`,`processes`,`added`) VALUES('$uid','" . clean_data($tempName) . "','" . serialize($process) . "','".$datetime."')";
有关日期函数的更多详细信息,请参阅:*注意:如果您的列的数据类型为
datetime
它不会在日期中插入am/pm。那么如果我想插入am
或pm
我该怎么办?您必须将其更改为varchar
。当我运行时,您的语句返回0000-00-00:00
。当您已经拥有此字符串时使用am/pm的日期时间格式,那么为什么要将其再次转换为日期时间?我之所以要转换,是因为我使用了datatype
作为datetime
,现在我将其更改为varchar
,但您的代码仍然存在问题。如果我通过了15/1/2014 12:49:53
,它将返回1970-01-01 01:00:00 AM
@peterm查看问题中给出的查询。
$sql = "INSERT into `projtemp` (`user_id`,`temp_name`,`processes`,`added`) VALUES('$uid','" . clean_data($tempName) . "','" . serialize($process) . "','".$datetime."')";