PHP / MySql如何将dateTime从STRING转换为DATE

时间:2014-01-15 06:38:44

标签: php mysql sql datetime

我正在尝试将一些数据插入到我的数据库中。数据还包含一个日期和时间。所以我需要通过转换为MySql DateTime格式来插入它。我尝试使用STR_TO_DATE,但它返回Date and Time Without AM OR 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'))

结果行:

enter image description here

我提到This Site,因为他们说%rAMPM添加到Time但它对我没有用。任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

没有上午/下午的日期:

$datetime = date("Y-m-d H:i:s", strtotime($added));

am / pm:

$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."')";

有关日期功能的更多详细信息,请参阅:http://www.php.net/manual/en/function.date.php
*注意:如果您的列是dataype datetime,则不会在上午/下午插入日期。

答案 1 :(得分:1)

试试这段代码:

$timestamp = strtotime($added);

然后使用date(),

将其转换为timestamp / datetime格式
date("Y-m-d H:i:s A", $timestamp);