php日历,上一页和下一页没有重新加载页面

时间:2016-05-17 11:41:23

标签: php calendar sidebar

我需要在页面的侧边栏上添加一个php日历。

我使用的是我几周前发现的一个片段,因为我之前使用过,它运行正常。但这一次,我必须添加下一个和上一个按钮来显示上个月或下个月...

我的问题是......我是否需要修改生成当月的php?

这是我到目前为止所做的:

    <table class="month">
    <tr class="days">
        <td>Mon</td>
        <td>Tues</td>
        <td>Wed</td>
        <td>Thurs</td>
        <td>Fri</td>
        <td>Sat</td>
        <td>Sun</td>
    </tr>
        <?php 

    $today = date("d"); // Current day
    $month = date("m"); // Current month
    $year = date("Y"); // Current year
    $days = cal_days_in_month(CAL_GREGORIAN,$month,$year); // Days in current month

    $lastmonth = date("t", mktime(0,0,0,$month-1,1,$year)); // Days in previous month

    $start = date("N", mktime(0,0,0,$month,1,$year)); // Starting day of current month
    $finish = date("N", mktime(0,0,0,$month,$days,$year)); // Finishing day of  current month
    $laststart = $start - 1; // Days of previous month in calander

    $counter = 1;
    $nextMonthCounter = 1;

    if($start > 5){ $rows = 6; }else {$rows = 5; }

    for($i = 1; $i <= $rows; $i++){
        echo '<tr class="week">';
        for($x = 1; $x <= 7; $x++){             

            if(($counter - $start) < 0){
                $date = (($lastmonth - $laststart) + $counter);
                $class = 'class="blur"';
            }else if(($counter - $start) >= $days){
                $date = ($nextMonthCounter);
                $nextMonthCounter++;

                $class = 'class="blur"';

            }else {
                $date = ($counter - $start + 1);
                if($today == $counter - $start + 1){
                    $class = 'class="today"';
                }
            }


            echo '<td '.$class.'><span class="dayWrap">'. $date . '</span></td>';

            $counter++;
            $class = '';
        }
        echo '</tr>';
    }

?>
</table>
  <div class="changeMonthLinks">
  <a class="col-xs-12" href="">< Prev</a>
  <a class="col-xs-12 aright" href="">Next ></a>
  </div>

我只是不知道如何继续...或者我需要在锚标记中添加什么:S

任何帮助都会受到赞赏。

谢谢 谢谢!!

1 个答案:

答案 0 :(得分:1)

我现在为param添加了$?现在在url中我用strtotime解析它到变量$ dtNow,所有日期函数都被扩展,底部的链接被扩展为?now = $ dtNow + 1个月和?now = $ dtNow - month

这是代码

<?php

$now = '';
if(isset($_GET['now']))
    $now = $_GET['now'];

$dtNow = strtotime($now);
if(!$dtNow)
{
    $dtNow = time();
}
echo "<h1>Today is " . date('Y-m-d', $dtNow) . "</h1>";

?>
<table class="month">
    <tr class="days">
        <td>Mon</td>
        <td>Tues</td>
        <td>Wed</td>
        <td>Thurs</td>
        <td>Fri</td>
        <td>Sat</td>
        <td>Sun</td>
    </tr>
    <?php


    $today = date("d", $dtNow); // Current day
    $month = date("m", $dtNow); // Current month
    $year = date("Y", $dtNow); // Current year
    $days = cal_days_in_month(CAL_GREGORIAN,$month,$year); // Days in current month

    $lastmonth = date("t", mktime(0,0,0,$month-1,1,$year)); // Days in previous month

    $start = date("N", mktime(0,0,0,$month,1,$year)); // Starting day of current month
    $finish = date("N", mktime(0,0,0,$month,$days,$year)); // Finishing day of  current month
    $laststart = $start - 1; // Days of previous month in calander

    $counter = 1;
    $nextMonthCounter = 1;

    if($start > 5){ $rows = 6; }else {$rows = 5; }

    for($i = 1; $i <= $rows; $i++){
        echo '<tr class="week">';
        for($x = 1; $x <= 7; $x++){

            if(($counter - $start) < 0){
                $date = (($lastmonth - $laststart) + $counter);
                $class = 'class="blur"';
            }else if(($counter - $start) >= $days){
                $date = ($nextMonthCounter);
                $nextMonthCounter++;

                $class = 'class="blur"';

            }else {
                $date = ($counter - $start + 1);
                if($today == $counter - $start + 1){
                    $class = 'class="today"';
                }
            }


            echo '<td '.$class.'><span class="dayWrap">'. $date . '</span></td>';

            $counter++;
            $class = '';
        }
        echo '</tr>';
    }

    ?>
</table>
<div class="changeMonthLinks">
    <a class="col-xs-12" href="?now=<?php echo date('Y-m-d', $dtNow - 30*24*60*60); ?>">< Prev</a>
    <a class="col-xs-12 aright" href="?now=<?php echo date('Y-m-d', $dtNow + 30*24*60*60); ?>">Next ></a>
</div>