我有一条表格消息,其中的字段为: 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." ".$days."<br>";
else
echo mysql_error();
}
}
?>
答案 0 :(得分:1)
您可以在MySQL DBMS中进行此日期比较。
尝试此查询:
SELECT username, message FROM message WHERE lastdate <= CURDATE() - INTERVAL 30 DAY
它应该只返回感兴趣的行。