Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySql如何将dateTime从字符串转换为日期_Php_Mysql_Sql_Datetime - Fatal编程技术网

PHP/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

我正在尝试向数据库中插入一些数据。数据还包含一个日期和时间。所以我需要通过转换成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($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."')";