【问题标题】:How to generate date for MySQL DATETIME type with PHP?如何使用 PHP 为 MySQL DATETIME 类型生成日期?
【发布时间】:2012-03-18 09:51:51
【问题描述】:

我需要获取过去 24 小时内插入的记录。我已经阅读了它并且知道我需要在我的 MySQL 日期列中使用 DATETIME 类型。
但我的问题是我不知道如何使用 PHP 为 MySQL DATETIME 类型生成日期?
我怎样才能做到这一点?提前致谢。

【问题讨论】:

  • 鉴于您提到了 DATETIME 类型,重要的是要注意 MySQL 只存储特殊格式的字符串。因此,您创建了一个格式为 YYYY-MM-DD HH:ii:ss 的 PHP 字符串,一切顺利。是的,我意识到这个问题已经有好几年了,但我认为未来的读者会在这里使用包含“DATETIME 类型”的搜索词并发现此信息很有用。

标签: php mysql datetime


【解决方案1】:

简单

$mysql_date_now = date("Y-m-d H:i:s");

因为mysql中的DATETIMEYYYY-MM-DD HH:ii:ss

【讨论】:

    【解决方案2】:

    如果您只是在寻找一种方法来生成要插入到日期时间字段中的日期时间,只需使用以下代码

    $datetime = date('Y-m-d H:i:s') ;
    

    或者直接sql

    INSERT INTO {TABLE} ({DATETIME}) VALUES (NOW())
    

    这将创建一个看起来像这样的日期

    2012-02-28 16:44:25
    

    如果您正在查找查询以获取最近 24 小时的使用情况

    SELECT * FROM tablename WHERE date_field > NOW() - interval 1 day
    

    【讨论】:

    • 我只想在此处添加此内容-我相信如果您使用sql now() 函数,它将根据服务器的位置而不是您的位置来创建时间。如果服务器位于具有不同时区的另一个国家或地区,它将使用服务器所在的时区而不是您自己的时区。
    • James111:这取决于您的服务器时区。如果您的服务器时区可以设置为您当前的位置,那就没问题了。
    【解决方案3】:

    有两种方法:

    1. 使用文本表示 - 例如:

      <?php
          $year=2012; $month=2; $day=27;
          $hour=22; $minute=44; $second=58;
      
          $sql="SELECT something FROM something WHERE datecolumn>='$year-$month-$day $hour:$minute:$second'";
      ?>
      
    2. 直接在 SQL 中执行此操作

      SELECT something FROM something WHERE datecolumn >= DATE_SUB(NOW(), INTERVAL 1 DAY);
      

    【讨论】:

    • 不知道小编为什么坚持把这个1.和1.编号,应该是1.和2.
    【解决方案4】:

    我会更改 MySQL 数据库来完成一半的工作,除非您不喜欢服务器上的时间。 名称:dateSomething 类型:时间戳 默认值:CURRENT_TIMESTAMP

    然后是 SQL 代码

    INSERT INTO {TABLE} ({dateSomething}) VALUES (DEFAULT)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 2012-11-23
      • 2021-12-18
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      相关资源
      最近更新 更多