给定日期和当前日期之间的差异

时间:2017-03-04 11:39:27

标签: javascript mysql

我有一条表格消息,其中的字段为: id,username,message,lastdate 。我想从这些日期(在我的表中)与当前日期进行比较。如果差异为30天,则应在管理页面中显示受尊重的用户名。 我尝试过日期差异,但它不起作用。

 <?php
    include("connection.php");
    $queryd=mysql_query("select * from message") or die(mysql_error());
    while($resultd=mysql_fetch_array($queryd))
    {
    extract($resultd);
    $date1=date('Y-m-d');
    $date2=$lastdate;

    $diff=date_diff($date2,$date1);
    echo $diff->format("%R%a days");
    }
       ?>

我也试过这段代码。但没有任何事情发生

<?php
    include("connection.php");
    $queryd=mysql_query("select * from message") or die(mysql_error());
    while($resultd=mysql_fetch_array($queryd))
    {
    extract($resultd);
    $date1=date('Y-m-d');
    $date2=$lastdate;


    $query12=mysql_query("SELECT username,DATEDIFF($date1,$date2) FROM message WHERE DATEDIFF($date1,$date2)<30") or die(mysql_error());
    while($result12=mysql_fetch_array($query12))
    {
        if($result12)
    echo $username; 
    else
    echo"record not";
    }
    }
?

我的第三个解决方案就在这里。我认为这是有效的。但它重复了价值观。

<?php
    include("connection.php");
    $queryd=mysql_query("select * from message") or die(mysql_error());
    while($resultd=mysql_fetch_array($queryd))
    {
    extract($resultd);
    $date1=date('Y-m-d');
    $date2=$lastdate;
    $days = (strtotime($date2) - strtotime($date1)) / (60 * 60 * 24);

    $result123=mysql_query("select username from message where '$days'<30");
    while($query123=mysql_fetch_array($result123))
  {
if($query123)
echo $username."&nbsp".$days."<br>";
else
echo mysql_error();
    }
    }

?>

1 个答案:

答案 0 :(得分:1)

您可以在MySQL DBMS中进行此日期比较。

尝试此查询:

     SELECT username, message FROM message WHERE lastdate <= CURDATE() - INTERVAL 30 DAY

它应该只返回感兴趣的行。