2017-03-04 151 views
0

我有一个表消息,其中字段为:id,用户名,消息,更新日期。我想从这些日期(在我的表格中)到当前日期进行比较。如果差异是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"); 
    } 
     ?> 

另外我试过这段代码。但没有happend

<?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(); 
    } 
    } 

?> 
+0

你确定你有一个合适的$ lastdate?尝试var_dump($ lastdate)进行检查 – scaisEdge

回答

1

你可以在你的MySQL数据库管理系统中做这个日期比较。

尝试此查询:

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

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

+0

感谢您的回复....发现错误...........您的SQL语法错误;检查与您的MariaDB服务器版本相对应的手册,以便在第1行的FROM消息WHERE lastdate <= CURDATE() - INTERVAL 30 DAY'附近使用正确的语法 –

相关问题