我想在php中点击添加和减去年份

时间:2012-11-08 07:31:19

标签: php date

这是我的代码。

/*******************************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年。

1 个答案:

答案 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>