【问题标题】:Insert date and time into Mysql将日期和时间插入Mysql
【发布时间】:2011-02-25 04:21:49
【问题描述】:

我正在尝试将日期和时间插入 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

如果有人能帮助我解决这个问题,我将不胜感激。谢谢。

【问题讨论】:

  • +1 所有回复!感谢GSTo的回答!

标签: php mysql datetime date insert-id


【解决方案1】:
$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')";

【讨论】:

  • 因为第一个sn-p包含SQL注入漏洞。我还有一个-1。 :-P :-)
  • @Noninlist - 来自 StackOverflow 的代码 sn-ps 不应逐字剪切和粘贴。我解决了手头的问题。但只是为了你,我添加了对 mysql 真实转义字符串的调用
【解决方案2】:

日期必须具有显示给您的格式:0000-00-00 00:00:00

所以,你必须转换它。 SO上有上千个关于这种转换的问题。
最短的方法是

list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);

【讨论】:

    【解决方案3】:

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

    YYYY-MM-DD HH:MM:SS
    

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

    【讨论】:

      【解决方案4】:
      • 或者您自己将字符串转换为YYYY-MM-DD HH:MM:SS 格式,
      • 或者你使用 MySQL 中的 str_to_date() 函数。

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          我已经通过这样的 API 在 mysql db 中添加了日期和时间:


          调用接口

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

          1. odate 类型为日期
          2. otime 类型是 DB 中的 TIME。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-23
            • 2013-04-27
            • 1970-01-01
            • 2016-04-01
            相关资源
            最近更新 更多