这是我的代码。
/*******************************PHP CODE*****************************************/
if(isset($_GET['date'])){ //
$date = $_GET['date'];
$date = date('Y', strtotime($date));
}
else{
$tomorrow = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$date = date("Y", $tomorrow);
}
/*************************************************************************/
<table width="214" height="78" border"0">
<tr align="center">
<td colspan="10"><a href="?date=<?= date("Y", strtotime($date .'-1 year')) ?>" title="Previous Day" >Previous Year</a></td>
<td width="95" colspan="2"><a href="?date=<?= date("Y", strtotime($date . '+1 year')) ?>" title="Next Day" >Next Year</a></td>
</tr>
<tr align="center">
<td colspan="12" align="center"></td></tr>
</table>
/***********************************************************/
它正在工作但是如果我按NEXT年它将带我到2013年然后我按 '上一年'它带我到2011而不是2012年。
答案 0 :(得分:0)
当你使用的是年份数字时,你对这些日期函数太疯狂了。
$tomorrow = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$date = date("Y", $tomorrow);
这与简单相同:
$date = date("Y");
并且$tomorrow
在那里没有意义,你只是以漫长的方式获得当前日期。你也有一些令人困惑的东西:
<a title="Next Day">Next Year</a>
而且:
date("Y", strtotime($date . '+1 year'))
与简单$date + 1
相同。
此外,如果您使用strtotime,请确保不要将东西混合在一起。 strtotime($date .'-1 year')
出现像strtotime('2012-1 year')
之类的东西,如果你必须使用这种方法,那么在减号之前加一个空格。
我认为,如果您只是多年工作,这可能就是您所追求的目标:
<?php
if(isset($_GET['date'])) {
$date = $_GET['date'];
} else {
$date = date("Y"); // current year
}
?>
<a href="?date=<?= $date - 1 ?>">Previous Year</a></td>
<a href="?date=<?= $date + 1 ?>">Next Year</a></td>