我正在尝试将日期和时间插入到mysql datetime字段中。当用户选择日期和时间时,它将生成两个POST变量。我搜索过互联网,但仍不确定如何做到这一点。
我的代码。
//date value is 05/25/2010
//time value is 10:00
$date=$_POST['date'];
$time=$_POST['time'];
$datetime=$date.$time
如果我将$ datetime插入mysql,则日期显示为0000-00-00:00:00:00
如果有人能帮助我,我感激不尽。感谢。
答案 0 :(得分:7)
$datetime = $_POST['date'] . ' ' . $_POST['time'] . ':00';
$datetime = mysql_real_escape_string($datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";
可以处理更多格式的替代解决方案:
$datetime = $_POST['date'] . ' ' . $_POST['time'];
$datetime = mysql_real_escape_string($datetime);
$datetime = strtotime($datetime);
$datetime = date('Y-m-d H:i:s',$datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";
答案 1 :(得分:4)
日期必须显示格式:0000-00-00 00:00:00
所以,你必须转换它。关于这种转换的问题有很多关于SO的问题 最短的方式就像
list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);
答案 2 :(得分:3)
我认为日期时间格式如下所示:
YYYY-MM-DD HH:MM:SS
所以你必须将你的$ datetime格式化为这样。并且在您的查询中需要封装在quoation标记中。
答案 3 :(得分:2)
YYYY-MM-DD HH:MM:SS
格式,或者您使用MySQL的str_to_date()
函数。
INSERT INTO表DATETIME值(str_to_date($ date,“%m /%d /%Y%h:%i”))
答案 4 :(得分:1)
据我记得,默认情况下,Mysql datetime应为“yyyy-mm-dd hh:mm:ss”格式。
答案 5 :(得分:0)
我已经通过API在mysql db中添加了日期和时间,如下所示:
调用API
http://localhost/SendOrder.php?odate=20120323&otime=164545
odate
类型为DATE otime
类型为DB中的TIME。它会将odate存储为2012-03-23,将otime存储为16:45:45。