>  기사  >  백엔드 개발  >  新手求助php日历问题

新手求助php日历问题

WBOY
WBOY원래의
2016-06-23 13:58:06877검색


    


        
        
        
        <script> <br /> <br /> function test(){ <br /> var tb = document.getElementsByTagName("table")[0]; <br /> var trs = tb.getElementsByTagName("tr"); <br /> <br /> <br /> <br /> for(var i=0;i<trs.length;i++){ <br /> var td = trs[i].firstChild; <br /> var tdl = trs[i].lastChild; <br /> <br /> td.setAttribute("style","color:red"); <br /> tdl.setAttribute("style","color:red"); <br /> <br /> <br /> } <br /> <br /> var tds = tb.getElementsByTagName("td"); <br /> for(var j=0;j<tds.length;j++){ <br /> <br /> tds[j].onmouseover = function(){ <br /> for(var k=0;k<tds.length;k++){ <br /> tds[k].className=""; <br /> } <br /> this.className="tdborder"; <br /> } <br /> <br /> tds[j].onclick = function(e){ <br /> var div = document.getElementsByTagName("div"); <br /> for(var a=0;a<div.length;a++){ <br /> document.body.removeChild(div[a]); <br /> } <br /> // var w = this.cellIndex; <br /> // alert(w); <br /> var e = e || window.event; <br /> var day = this.innerHTML; <br /> var d = document.createElement("div"); <br /> d.style.border = "1px solid red"; <br /> d.style.position = "absolute"; <br /> d.style.zIndex = 22; <br /> d.style.left = e.clientX+20 + "px"; <br /> d.style.top = e.clientY+5 + "px"; <br /> d.style.width = "100px"; <br /> d.style.height = "100px"; <br /> d.innerHTML = day; <br /> <br /> document.body.appendChild(d); <br /> <br /> } <br /> <br /> } <br /> <br /> <br /> } <br /> <br /> window.onload = test; <br /> <br /> <br /> </script>

    
    
    
    $year = 2014;
    $month =4;
    $total = 0;
    $isRN = false;
    $month_day = 0;

    if($year % 4 == 0 && $year % 100 != 0 || $year % 400 == 0){
        $isRN = true;
    }

    for($i=1900;$i         if($i % 4 == 0 && $i % 100 != 0 || $i % 400 == 0){
            $total += 366;
        }else{
            $total += 365;
        }
    }

    for($i=1;$i         switch($i){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                $month_day = 31;
                break;
            case 2:
                if($isRN){
                    $month_day = 29;
                }
                else{
                    $month_day = 28;
                }
                break;
            default:
                $month_day = 30;
                break;

        }
        if($i              $total += $month_day;
        }
    }


    $temp = $total % 7 + 1;
    if($temp == 7){
        $temp = 0;
    }

    echo "";
    echo "
        
        
        
        
        
        ";
    for($i=1;$i         if($i==1){
            echo "";
        }
        if($temp != 0){
            for($j=0;$j                 echo "";
            }
            $temp = 0;
        }
        echo "";
        if(($total+$i + 1) %7 == 0){
            echo "";
        }
        if($i == $month_day){
            echo "";
        }
    }
    echo "
星期天     星期一     星期二     星期三     星期四     星期五     星期六    
".$i."

";



    ?>

    



 本人想点击日期在div内显示出这是今年的第多少天和星期几。求大神帮帮忙


回复讨论(解决方案)

<?php	//设置为中国时区	date_default_timezone_set('PRC');	//打印出今天是星期几(英文的)	echo date('l');	//打印出明天是星期几	echo date('l',time()+60*60*24);	/*	*因为不知道你所设置的时间格式,上面使用的是时间戳	*如果你是2014-7-8这类格式的话,可以使用strtotime()先转换为时间戳	*/		echo date('l',strtotime('2014-4-19'));	//或者这样	echo date('l',mktime(23,59,59,4,19,2014));		//相信上面说的几个函数应该可以满足你需求了,不行再问,但是自己先去查手册		//获取今天是今年的第几天,其他格式查看上面,是一样的	echo date('z');?>

<html>    <head>        <title></title>        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>           <style>            .tdborder{                border: 1px solid red;            }        </style>        <script type="text/javascript">            function test(){               var tb = document.getElementsByTagName("table")[0];               var trs = tb.getElementsByTagName("tr");               for(var i=0;i<trs.length;i++){                   var td = trs[i].firstChild;                   var tdl = trs[i].lastChild;                   td.setAttribute("style","color:red");                   tdl.setAttribute("style","color:red");               }                var tds = tb.getElementsByTagName("td");                for(var j=0;j<tds.length;j++){                    tds[j].onmouseover = function(){                        for(var k=0;k<tds.length;k++){                            tds[k].className="";                        }                        this.className="tdborder";                    }                    tds[j].onclick = function(e){                        var div = document.getElementsByTagName("div");                        for(var a=0;a<div.length;a++){                            document.body.removeChild(div[a]);                        }//                        var w = this.cellIndex;//                        alert(w);                        var e = e || window.event;                        var day = this.innerHTML;                        var d = document.createElement("div");                        d.style.border = "1px solid red";                        d.style.position = "absolute";                        d.style.zIndex = 22;                        d.style.left = e.clientX+20 + "px";                        d.style.top = e.clientY+5 + "px";                        d.style.width = "100px";                        d.style.height = "100px";                        d.innerHTML = day+" 第几天:"+this.getAttribute('djt')+" 星期几:"+this.getAttribute('xqj');//自己在美化下 星期几:0表示星期日 2表示星期一                        document.body.appendChild(d);                    }                }            }            window.onload = test;        </script>    </head>    <body>    <?php    $year = 2014;    $month =4;    $total = 0;    $isRN = false;    $month_day = 0;    if($year % 4 == 0 && $year % 100 != 0 || $year % 400 == 0){        $isRN = true;    }    for($i=1900;$i<$year;$i++){        if($i % 4 == 0 && $i % 100 != 0 || $i % 400 == 0){            $total += 366;        }else{            $total += 365;        }    }    $preTotal = $total;//定义一个今年之前的天数    for($i=1;$i<=$month;$i++){        switch($i){            case 1:            case 3:            case 5:            case 7:            case 8:            case 10:            case 12:                $month_day = 31;                break;            case 2:                if($isRN){                    $month_day = 29;                }                else{                    $month_day = 28;                }                break;            default:                $month_day = 30;                break;        }        if($i < $month){            $total += $month_day;        }    }    $temp = $total % 7 + 1;    if($temp == 7){        $temp = 0;    }    echo "<table>";    echo "<tr><th>星期天    </th>        <th>星期一    </th>        <th>星期二    </th>        <th>星期三    </th>        <th>星期四    </th>        <th>星期五    </th>        <th>星期六    </th></tr>";    for($i=1;$i<=$month_day;$i++){        if($i==1){            echo "<tr>";        }        if($temp != 0){            for($j=0;$j<$temp;$j++){                echo "<td></td>";            }            $temp = 0;        }           echo "<td xqj = ".(($total+$i + 1) %7)." djt=".($total+$i - $preTotal).">".$i."</td>";//xqj:表示星期几 如:0=星期日 djt:表示今年的第几天        if(($total+$i + 1) %7 == 0){            echo "</tr><tr>";        }        if($i == $month_day){            echo "</tr>";        }    }    echo "</table><br/>";    ?>    </body></html>


 感谢大神。谢谢了


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.