将php date()转换为mysql datetime格式

时间:2013-09-27 07:14:25

标签: php mysql

我使用“$will = mktime($hour,$minute,$second,$month,$day,$year)”来构建时间类型,我希望将$will转换为mysql数据时格式,我尝试使用$mysqltime = date('Y-m-d H:i:s', $will); 但是当我将它插入到msql中时,我只能在表中获得0000-00-00 00:00:00

提前致谢。

我的代码就像:

$mysqlpickuptime = date('Y-m-d H:i:s',mktime($hour,$minute,$second,$month,$day,$year));
$mysqlrequestdata = date('Y-m-d H:i:s');

我从桌子上收集这些$ hour,$ minute ......没问题。和mysql语句是:

$SQLstatement1 ="INSERT INTO request(customer_id,**request_data**,item_description,weight,pick_up_address,pick_up_suburb,
        **pick_up_data**, receiver_name,delivery_address,delivery_suburb,state) VALUES ('".$customer_id."','".**$mysqlrequestdata**."','".$item_description."','".$weight."','".$pick_up_address."'
        ,'".$pick_up_suburb."','".**$mysqlpickuptime**."','".$receiver_name."','".$delivery_address."','".$delivery_suburb."','".$state."') ";

我试过建议显示自爆,但我仍然得到dataime列是00:00:00。

我是这个系统和php的新手,抱歉混淆。

4 个答案:

答案 0 :(得分:0)

试试这个      $ dateTime = date('Y-m-d H:i:s',strtotime($ date));

下次尝试在Google上进行简单查询,如“php date”

答案 1 :(得分:0)

解决方案1 ​​ - 在数据库层

上使用FROM_UNIXTIME()

您可以使用FROM_UNIXTIME()函数在数据库端执行此操作(参数为Unix纪元时间戳,因此这与您的mktime()的结果相同)。

使用此"INSERT INTO table_name (field) VALUES (FROM_UNIXTIME('$mysqltime')";

解决方案2 - 修复当前代码

此外,您的代码不正确,因为您将错误的日期传递给DateTime构造函数(请参阅the documentation)。您通过了"Y-m-d H:i:s"而不是date('Y-m-d H:i:s', mktime(0, 0, 0, $i, 1, 2012))。您甚至可以使用DateTime辞职,只需坚持使用date('Y-m-d H:i:s', mktime(0, 0, 0, $i, 1, 2012)),因为这足以用于数据库插入。

答案 2 :(得分:0)

尝试以下代码:

$formattedDateStr = date(
       "Y-m-d H:i:s",
       strtotime( "Mar 31 2013 01:04:47:687AM" ),
 );

答案 3 :(得分:0)

你需要知道,如果你的mysql列是DATE,那么使用:

date('Y-m-d', mktime(....)) ;

否则,如果您的列是DATETIME,则可以填写所有日期信息:

date('Y-m-d H:i:s', mktime(...)) ;