使用javascript和php显示日历

时间:2010-01-29 10:24:10

标签: php javascript

我是这个PHP的新手我试图开发一个代码,当我点击启动日历它将显示日历,当我选择它将在文本字段中显示的日期,但我的问题是当我clik启动日历它没有显示feburay月..我不知道我的代码中的错误可以任何人请帮助我在这... ..提前感谢..这里是我的代码我已经开发...

<?php

$day = $_GET["day"];
$month = $_GET["month"];
$year = $_GET["year"];
$sel = $_GET["sel"];
$what = $_GET["what"];
$field = $_GET["field"];
$form = $_GET["form"];

if($day == "") $day = date("j");

if($month == "") $month = date("m");

if($year == "") $year = date("Y");

$currentTimeStamp = strtotime("$year-$month-$day");
$monthName = date("F", $currentTimeStamp);
$numDays = date("t", $currentTimeStamp);
$counter = 0;
?>


<html>
<head>
<title>MyCalendar</title>
<link rel="stylesheet" type="text/css" href="calendar.css">
<script language="javascript">
    function goLastMonth(month,year,form,field)
    {

        if(month == 1)
    {
    --year;
    month = 13;
    }       
        document.location.href = 'calendar.php?month='+(month-1)+'&year='+year+'&form='+form+'&field='+field;
    }

    function goNextMonth(month,year,form,field)
    {

        if(month == 12)
    {
    ++year;
    month = 0;
    }   
        document.location.href = 'calendar.php?month='+(month+1)+'&year='+year+'&form='+form+'&field='+field;
    }

    function sendToForm(val,field,form)
    {

        eval("opener.document." + form + "." + field + ".value='" + val + "'");
        window.close();
    }
</script>
</head>
<body style="margin:0px 0px 0px 0px" class="body">
<table width='175' border='0' cellspacing='0' cellpadding='0' class="body">
    <tr>
        <td width='25' colspan='1'>
        <input type='button' class='button' value=' < ' onClick='<?php echo "goLastMonth($month,$year,\"$form\",\"$field\")"; ?>'>
        </td>
        <td width='125' align="center" colspan='5'>
        <span class='title'><?php echo $monthName . " " . $year; ?></span><br>
        </td>
        <td width='25' colspan='1' align='right'>
        <input type='button' class='button' value=' > ' onClick='<?php echo "goNextMonth($month,$year,\"$form\",\"$field\")"; ?>'>
        </td>
    </tr>
    <tr>
        <td class='head' align="center" width='25'>S</td>
        <td class='head' align="center" width='25'>M</td>
        <td class='head' align="center" width='25'>T</td>
        <td class='head' align="center" width='25'>W</td>
        <td class='head' align="center" width='25'>T</td>
        <td class='head' align="center" width='25'>F</td>
        <td class='head' align="center" width='25'>S</td>
    </tr>
    <tr>
<?php
    for($i = 1; $i < $numDays+1; $i++, $counter++)
    {
        $timeStamp = strtotime("$year-$month-$i");
        if($i == 1)
        {

        $firstDay = date("w", $timeStamp);

        for($j = 0; $j < $firstDay; $j++, $counter++)
        echo "<td> </td>";
        }

        if($counter % 7 == 0)
        echo "</tr><tr>";

        if(date("w", $timeStamp) == 0)

        $class = "class='weekend'";
        else
        if($i == date("d") && $month == date("m") && $year == date("Y"))
        $class = "class='today'";
        else
        $class = "class='normal'";

        echo "<td class='tr' bgcolor='#ffffff' align='center' width='25'><a class='buttonbar' href='#' onclick=\"sendToForm('".sprintf("%02d/%02d/%04d", $month, $i, $year)."','$field','$form');\"><font $class>$i</font></a></td>";
    }
?>
    </tr>
</table>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

这不是对您的脚本的修复,但可能是您的问题的修复程序。使用预制的完整javascript日历库不是更容易吗?

像: Jscalendar Demo

或者 Jquery Ui Datepicker + Demo

答案 1 :(得分:0)

由于日历将在客户端运行,因此可以仅使用客户端代码完成此任务。使用javascript和像Jquery这样的预制库 - 正如@ RJD22指出的那样。 我认为,一般情况下,当您可以在客户端完成任务时使用服务器端时,它会更好,因为服务器资源有限