想知道如何在以下代码中添加if语句。
目前的做法是按照各自月份/年份的标题列出数据库中的所有新闻文章,并将这些文章分组在此下: 即 2012年5月 - 新闻A,新闻B. 2012年6月 - 新闻C 2012年7月 - 新闻D
由于使用了unix日期系统,我们在1970年之前的故事中遇到了问题。 我不希望改变我们目前使用的系统,因为它“工作”,但是,如果可以找到一个修复(我已经尝试减去数字....它不起作用),或者如果一个if声明可以添加到下面的代码中,这将停止显示文章/为1970年以前的文章创建的组然后这将是好的:)
<h3>Archive</h3>
<? $news=$session->getNews("","","",1);?>
<? while($article=mysql_fetch_array($news)){?>
<?
$date = $article['thedate'];
$year = date('Y', $date);
$month = date('F', $date);
?>
<h4><?=$month." - ".$year;?></h4>
<nav class="small">
<? $innernews=$session->getNews("",$month,$year);?>
<? while($innerarticle=mysql_fetch_array($innernews)){?>
<a href="/news/<?=$innerarticle['ftitle']?>" <? if($title==$innerarticle['ftitle']){?> class="active"<? }?>><?=$innerarticle['title']?></a>
<? }?>
</nav>
<? }?>
<h4>Pre-1970</h4>
<nav class="small">
<a href="#">See More - Currently Unavailable</a>
</nav>
</div>
答案 0 :(得分:1)
好的,现在是严肃的事情。
首先,你似乎不必要地进出PHP。可以将多行PHP连接起来!其次,你使用的是短标签。虽然这可能有用,但可能没有。最好始终使用<?php
(除非您使用的是PHP 5.4或更高版本,在这种情况下,无论设置如何,都可以使用<?=$something?>
来回显。)
现在,关于实际问题。你能做的是:
$year = ...;
if($year == 1970) echo "Sorry, news is not available for this date.";
else {
// rest of your code to show news here
}
答案 1 :(得分:0)
在<? while($innerarticle=mysql_fetch_array($innernews)){?>
代码中,在您希望使用语法$innernews
>
选择日期时修改您的查询
提供$innernews
和$news
变量的设置方式也会更好
答案 2 :(得分:0)
<h3>Archive</h3>
<? $news=$session->getNews("","","",1);?>
<? while($article=mysql_fetch_array($news)){?>
<?
$date = $article['thedate'];
$year = date('Y', $date);
$month = date('F', $date);
if ($year<1970) continue;
?>
<h4><?=$month." - ".$year;?></h4>
<nav class="small">
<? $innernews=$session->getNews("",$month,$year);?>
<? while($innerarticle=mysql_fetch_array($innernews)){?>
<a href="/news/<?=$innerarticle['ftitle']?>" <? if($title==$innerarticle['ftitle']){?> class="active"<? }?>><?=$innerarticle['title']?></a>
<? }?>
</nav>
<? }?>
<h4>Pre-1970</h4>
<nav class="small">
<a href="#">See More - Currently Unavailable</a>
</nav>
</div>
答案 3 :(得分:0)
您可以将其从date()
更改为php的object-oriented DateTime
class
note - 这需要php v。&gt; = 5.2.0
<?
$date = $article['thedate'];
$dt = new DateTime($date);
$year = $dt->format("Y");
$month = $dt->format("F");
?>