-2

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

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

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

4

4 回答 4

0

试试这个 $dateTime = date('Ymd H:i:s', strtotime($date));

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

于 2013-09-27T07:18:06.423 回答
0

解决方案 1 -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)). 您甚至可以退出 usingDateTime并坚持使用 using date('Y-m-d H:i:s', mktime(0, 0, 0, $i, 1, 2012)),因为这对于您的数据库插入来说已经足够了。

于 2013-09-27T07:20:23.020 回答
0

试试下面的代码:

$formattedDateStr = date(
       "Y-m-d H:i:s",
       strtotime( "Mar 31 2013 01:04:47:687AM" ),
 );
于 2013-09-27T07:21:35.393 回答
0

您需要知道,如果您的 mysql 列是 DATE,则使用:

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

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

date('Y-m-d H:i:s', mktime(...)) ;
于 2013-09-27T07:26:53.990 回答