【问题标题】:Incorrect value of datetime PHP and MySQL日期时间 PHP 和 MySQL 的值不正确
【发布时间】:2014-06-29 08:10:21
【问题描述】:

在我的网站中,我有一个引导日期选择器,它允许用户选择 MM/DD/YYYY 格式的日期(例如:05/12/2014)。然后当这个数据被提交时,我使用下面的 PHP 代码将它转换为 Datetime 类型,然后插入到 MySQL 的 start_date (DATETIME 数据类型) 列中。

$start_date = date('Y-m-d', $_POST['start_date']);

PHP 中的插入查询对重新格式化日期没有任何作用。它只是简单地插入到相应的列中。

但是,插入数据库的值是 '1970-01-01',而不是插入 '2014-05-12'。这对我来说太奇怪了。谁能告诉我这里出了什么问题。这是我使用了不正确的 PHP 函数或不正确的时区设置还是...

【问题讨论】:

    标签: php mysql datetime


    【解决方案1】:

    这样做:

    $start_date = date('Y-m-d', strtotime($_POST['start_date']));
    

    【讨论】:

    • 感谢它正常工作。也许,下次我会在问这种愚蠢的问题之前多谷歌
    • 当然,但是stackoverflow只允许我在几分钟后接受正确答案(大约5分钟)
    【解决方案2】:

    您也可以在 $_POST 上使用 strtotime()。

    $start_date = date('Y-m-d', strtotime('05/12/2014'));
    

    【讨论】:

      【解决方案3】:

      尝试使用

      $date = str_replace('/', '-', $_POST['start_date']);
      $start_date = date('Y-m-d', strtotime($date));
      

      更多信息:- Converting between illogically formatted dates (changing /slash/ to -dash- )

      【讨论】:

        猜你喜欢
        • 2020-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-23
        相关资源
        最近更新 更多