11

我正在尝试将日期和时间插入 mysql 日期时间字段。当用户选择日期和时间时,它将生成两个 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

如果有人可以帮助我,我将不胜感激。谢谢。

4

6 回答 6

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')";
于 2010-05-28T15:02:20.780 回答
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']);
于 2010-05-28T15:02:51.900 回答
3

我认为日期时间格式如下所示:

YYYY-MM-DD HH:MM:SS

所以你必须格式化你的 $datetime 看起来像那样。并且在您的查询中需要封装在引号中。

于 2010-05-28T14:59:41.547 回答
2
  • 要么您将字符串转换为YYYY-MM-DD HH:MM:SS自己的格式,
  • 或者你使用str_to_date()MySQL 中的函数。

    INSERT INTO 表 DATETIME 值 (str_to_date($date,"%m/%d/%Y %h:%i"))

于 2010-05-28T15:00:41.483 回答
1

据我记得,默认情况下,Mysql 日期时间应该是“yyyy-mm-dd hh:mm:ss”格式。

于 2010-05-28T15:00:41.953 回答
0

我已经通过 API 在 mysql db 中添加了日期和时间,如下所示:


调用接口

http://localhost/SendOrder.php?odate=20120323&otime=164545

  1. odate类型是日期
  2. otime类型是数据库中的时间。

它将 odate 存储为 2012-03-23,otime 存储为 16:45:45。

于 2015-01-31T07:16:59.463 回答