PHP:比较日期
我遇到了以下问题: 我想将今天的日期与数据库中的一些日期进行比较,然后如果它尚未过期,则显示一些。。。但是,如果表中的所有日期都已过期,则显示类似“此时没有安排讲座,请再次返回”的内容 至于第一件事,这没问题,但我不能在没有任何未来日期的地方显示文本 这是密码 表: id、已发布日期、课程日期、标题、正文PHP:比较日期,php,sql,date,Php,Sql,Date,我遇到了以下问题: 我想将今天的日期与数据库中的一些日期进行比较,然后如果它尚未过期,则显示一些。。。但是,如果表中的所有日期都已过期,则显示类似“此时没有安排讲座,请再次返回”的内容 至于第一件事,这没问题,但我不能在没有任何未来日期的地方显示文本 这是密码 表: id、已发布日期、课程日期、标题、正文 $sql = "SELECT * FROM L ORDER BY L.dateposted DESC;"; $result = mysql_qu
$sql = "SELECT *
FROM L
ORDER BY L.dateposted DESC;";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
$exp_date = $row['date_course'];
$todays_date = date("Y-m-d");
$today = strtotime($todays_date);
$expiration_date = strtotime($exp_date);
if ($expiration_date >= $today)
{
echo "<a href='courses.php'>" . $row['title']. "</a>";
echo "</br>";
}
}
$sql=“选择*
从L
以L.dateposted DESC.订购;
$result=mysql\u query($sql)或die(mysql\u error());
while($row=mysql\u fetch\u assoc($result))
{
$exp_date=$row['date_course'];
$todays_date=日期(“Y-m-d”);
$today=标准时间($todays\u date);
$expiration\u date=strottime($exp\u date);
如果($expiration\u date>=$today)
{
回声“;
回声“”;
}
}
有几种方法。一种是将日期比较作为查询的一部分。如果未选择任何行,则显示您的特殊消息
否则,您可以设置一个标志,如
$has_courses = false;
while ($row = fetch() {
$has_courses = true;
...
}
if (!$has_courses) { echo 'No courses'; }
尽管通过改进查询,您可以更高效地完成此操作,但以下是您请求的特定修复:
$sql = "SELECT *
FROM L
ORDER BY L.dateposted DESC;";
$result = mysql_query($sql) or die(mysql_error());
$out = false;
while($row = mysql_fetch_assoc($result))
{
$exp_date = $row['date_course'];
$todays_date = date("Y-m-d");
$today = strtotime($todays_date);
$expiration_date = strtotime($exp_date);
if ($expiration_date >= $today)
{
$out = true;
echo "<a href='courses.php'>" . $row['title']. "</a>";
echo "</br>";
}
}
if (!$out)
echo 'Nothing found.';
$sql=“选择*
从L
以L.dateposted DESC.订购;
$result=mysql\u query($sql)或die(mysql\u error());
$out=false;
while($row=mysql\u fetch\u assoc($result))
{
$exp_date=$row['date_course'];
$todays_date=日期(“Y-m-d”);
$today=标准时间($todays\u date);
$expiration\u date=strottime($exp\u date);
如果($expiration\u date>=$today)
{
$out=true;
回声“;
回声“”;
}
}
如果(!$out)
回声“什么也没找到”;
我假设您使用的是MySQL。对您的查询和代码进行一些小的更改应该可以实现这一点。您肯定应该在查询中而不是代码中进行这种过滤
$sql = "SELECT *
FROM L
WHERE date_course < NOW() AND dateposted < NOW()
ORDER BY L.dateposted DESC;";
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) > 0)
{
while ($row = mysql_fetch_assoc($result))
{
echo "<a href='courses.php'>" . $row['title']. "</a>";
echo "</br>";
}
}
else
{
echo "No results available";
}
$sql=“选择*
从L
其中date_course0)
{
while($row=mysql\u fetch\u assoc($result))
{
回声“;
回声“”;
}
}
其他的
{
回显“无可用结果”;
}
您知道SQL有一个特殊的语法WHERE子句,它允许您为select指定条件