【问题标题】:Compare date in a table to todays date将表格中的日期与今天的日期进行比较
【发布时间】:2014-11-03 10:13:24
【问题描述】:

我想弄清楚如何使用 if 语句将今天的日期与表中的日期字段进行比较。

<?php 
    $dayte_today = date('Y-m-d');
    $plannerid = $_GET["plannerid"];

    $sql="SELECT * FROM planner_content WHERE planner_id='$plannerid'";
    $result=mysqli_query($con,$sql)or die(mysqli_error($con));

    // Mysql_num_row is counting table row
    $count=mysqli_num_rows($result);

    if($count>=1){ 
    /* echo "Your id is $userID"; */
        while ($link =  mysqli_fetch_object($result)) {
        echo ''.$link->date.' - '.$link->comment.'' ;
        }

    }
    else {
        echo "No events yet";
    }
?> 

我暂时可以显示结果,但我不知道如何将实际日期与表格中的日期进行比较。我尝试使用 mysqli_fetch_object 但我没有让它工作。

【问题讨论】:

  • 我会使用 strtotime() 将所有数据库日期转换为 unix 时间戳,然后使用 time() 将当前时间作为时间戳......然后比较
  • 我不需要时间我只想比较一个日期,例如 09/09/2014
  • 你很容易受到sql injection attacks

标签: php mysql sql date datepicker


【解决方案1】:

比较日期,可以结合使用 date() 和 strtotime 函数

if($count>=1){ 
    /* echo "Your id is $userID"; */
        while ($link =  mysqli_fetch_object($result)) {
        $planned_date = date('Y-m-d', strtotime($link->date));
        /* Do your comparison here */
           $dayte_today - $planned_date;
        }

    }
    else {
        echo "No events yet";
    } 

您还可以使用这样的查询从 mysql 查询中过滤

SELECT * FROM planner_content WHERE planner_id='$plannerid' AND date < curdate();

【讨论】:

  • 我希望它在 if 函数中,仅“回显”过去的日期
  • 在这种情况下,您可以从 sql 查询中过滤。检查我的答案的更新
【解决方案2】:

为什么不使用mysql's built-in date functions 比较日期?

在您的 select 语句中添加一列,使用 @987654322@ 返回一个可在应用程序逻辑中使用的数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2017-09-26
    相关资源
    最近更新 更多