【问题标题】:How to compare a system date with the date from MySQL database in php如何在php中将系统日期与MySQL数据库中的日期进行比较
【发布时间】:2013-07-31 10:34:11
【问题描述】:

我想比较我的系统日期和 MySQL 数据库中的日期,如果系统日期与我的表日期的日期相差 10 天,则比较应该是这样。

例如我的系统日期:2013 年 7 月 31 日,表格的日期是 2013 年 8 月 10 日,它应该回显一条消息“还有 10 天可以续订。”

我知道如何在 php 中将日期添加到日期中,但我不知道应该如何比较这两者。

$mydt = date("Y-m-d");
$alertday = date('Y-m-d', strtotime($mydt. " + 10 days"));

【问题讨论】:

    标签: php mysql date


    【解决方案1】:

    使用date_diff()-> DateTime::diff

    $interval  = date_diff($date1, $date2); //$date1, $date2 are DateTime objects.
    echo $interval->d; //Outputs number of day difference.
    

    更多功能可以在这里找到:

    http://www.php.net/manual/de/class.dateinterval.php

    http://www.php.net/manual/de/datetime.diff.php

    【讨论】:

    • @user2274075 它正在工作。您必须创建 DateTime 对象(首先是$date1 and $date2)。如果某些东西不起作用,您需要解释什么不起作用。
    【解决方案2】:

    在您的查询中,假设您传入来自$now = strttotime("now"); 的值 然后您可以在 MySQL 中执行以下操作

    WHERE DATE_FORMAT($now "%Y-%m-%d") = DATE_FORMAT(DATE_ADD(DATE_FIELD,INTERVAL -10 DAY), "%Y-%m-%d")
    

    【讨论】:

      【解决方案3】:

      只需将 db 表时间转换为正常的 unix 时间戳减去并除以一天中的秒数

      $now = time();
      $dbtime = strtotime($tabledate);
      
      $daysleft = ($now-$dbtime) / ( 60*60*24);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多