使用PHP的水平日历

时间:2012-09-23 08:53:19

标签: calendar

你可以在这里看到我想要做的事情http://perthurbanist.com/website/calendarloader.php。基本上它是一个水平日历,你​​将使用箭头移动。我想要做的是让代码水平显示所有日期以及所有日期(从当前月份和日期开始)。我知道如何使用日期功能获取当天的日期,但我不知道如何在该日期开始日历。我也想要它加载很多个月(可能是2 - 3年)。我该怎么做这两件事。

<?php
$showday = date("j");
$displaymonth = date("M");
$showmonth = date("n");
$showyear = date("Y");

$day_count = cal_days_in_month(CAL_GREGORIAN, $showmonth, $showyear);

echo '<ul class="calendarnavigation">';
echo '<li class="month">' . $displaymonth . '</li>';

for($i=1; $i<= $day_count; $i++) {
echo '<li>' . $i . '</li>';
}

echo '</div>';
?>

1 个答案:

答案 0 :(得分:1)

如果你知道(或者能够计算你想要走多远的日子,你可以试试这个:

for($i=0; $i<$numberOfDays; $i++)
{
    $timestamp=mktime(0,0,0,date("m"),date("d")+$i,date("Y"));
    $day=date("d", $timestamp);
    $month=date("m", $timestamp);
    $year=date("Y", $timestamp);

    ...Your display stuff here...

}

在循环的每次迭代中,$timestamp将提前一天,并在date函数中使用它将为您提供有关创建显示所需日期的信息。

也许在你的情况下你可以使用

echo '<ul class="calendarnavigation">';

for($i=0; $i<$numberOfDays; $i++)
{
    $timestamp=mktime(0,0,0,date("m"),date("d")+$i,date("Y"));
    $showday=date("j", $timestamp);
    $displaymonth=date("M", $timestamp);
    $showmonth=date("n", $timestamp);
    $showyear=date("Y", $timestamp);

    if($showday=="1")
    {
        echo '<li>'.$displaymonth.'</li>';
    }

    echo '<li>'.$showday.'</li>';

}

echo '</ul>';