我用" $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(...)) ;