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



我用" $will = mktime($hour,$minute,$second,$month,$day,$year)"来构建一个时间类型,我想$will翻译成mysql datatime格式,我尝试使用$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."') ";

我尝试了建议显示吹了,但仍然得到数据列是 0000-00-00 00:00:00。

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

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

下次尝试在谷歌上进行简单的查询,例如"php date"

尝试以下代码:

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

解决方案 1 - 在 DataBSE 层上使用FROM_UNIXTIME()

你可以在数据库端使用FROM_UNIXTIME()函数来做到这一点(参数是Unix纪元时间戳,所以这与你的mktime()的结果相同)。

用了这个"INSERT INTO table_name (field) VALUES (FROM_UNIXTIME('$mysqltime')";

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

此外,您的代码不正确,因为您将不正确的日期传递到构造函数DateTime(请参阅文档)。你传递"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)),因为这足以插入数据库。

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

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

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

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

最新更新