hellow, 即时通过datetimebox easyui创建表单,如下所示:
<input id="dt" name ="po_receive" class="easyui-datetimebox" name="date_time_pick" data-options="required:true,showSeconds:false" style="width:150px">
我想用datetime类型数据库将它保存到mysql,但结果是00:00:00。 javascript easyui-datetimebox工作得很好。
这是我的保存数据代码:
<?php
$po_receive = $_REQUEST['po_receive'];
$sql = "insert into db(po_receive) values ('$po_receive')";
$result = @mysql_query($sql);
if ($result){
echo json_encode(array(
'id' => mysql_insert_id(),
'po_receive' => $po_receive
));
} else {
echo json_encode(array('errorMsg'=>'Some errors occured.'));
}
?>
但结果是00:00:00,是因为datetimebox值格式是“01/03/2016 07:53:09”?示例datetimebox:datetimebox
答案 0 :(得分:1)
您需要在插入数据库之前重新格式化日期
$dc=date_create($po_receive);
$formated_date=date_format($dc,"Y-m-d"); //"Y-m-d" is the date format
$sql = "insert into db(po_receive) values ('$formated_date')";
请参阅此链接,了解不同类型的日期格式 http://php.net/manual/en/function.date.php
答案 1 :(得分:1)
Tq all。
答案 2 :(得分:0)
结果是00:00:00,是因为datetimebox的值格式是“01/03/2016 07:53:09”
那是因为您尝试以不正确的格式插入日期时间。 MySQL的DATETIME
采用以下格式YYYY-MM-DD HH:MM:SS
。
以下是参考资料:
使用createFromFormat()
类的getTimestamp()
和DateTime
方法将您的时间转换为unix时间戳,然后使用strftime()
将unix时间戳转换为MySQL格式。
以下是参考资料:
所以你的代码应该是这样的:
<?php
$po_receive = $_REQUEST['po_receive'];
$unixdatetime = DateTime::createFromFormat('d/m/Y H:i:s', $po_receive)->getTimestamp();
$po_receive = strftime("%Y-%m-%d %H:%M:%S",$unixdatetime);
$sql = "insert into db(po_receive) values ('$po_receive')";
$result = @mysql_query($sql);
if ($result){
echo json_encode(array(
'id' => mysql_insert_id(),
'po_receive' => $po_receive
));
} else {
echo json_encode(array('errorMsg'=>'Some errors occured.'));
}
?>
旁注:请不要使用mysql_
数据库扩展,从PHP 5.5开始不推荐使用它们,并在PHP 7.0中完全删除它们。请改用mysqli
或PDO
扩展程序。这是why you shouldn't use mysql_
functions。
答案 3 :(得分:0)
您需要根据MYSQL日期时间标准转换输入日期。
<强>替换强>
$po_receive = $_REQUEST['po_receive'];
。通过强>
$po_receive = date ("Y-m-d H:i:s",strtotime($_REQUEST['po_receive']));