• ajax版本日历


    其实基本就是利用js生成日历。然后利用ajax功能读取日历页面上的每天的信息。我的信息比较简单了,每天仅有一条信息或者没有,所以比较好判断了。

    困难的地方是如何生成日历。

    以下是我的一些心得 。

    第一,先计算出当月1号是星期几。
    var dt=$F("dt"); //为输入的日期
                
    var dd;
                dd
    =dt.split("-");
                
    var today=new Date(dd[0],(dd[1]-1),dd[2]);
                
    var nowdate=new Date();
                
    var daystart = today.getMonth() + "/1/" + today.getYear(); //获取一号的日期
                
                
    var x=daystart.split("/");
                
    var dayDate = new Date(x[2],x[0],1);
                
    var weekstart= dayDate.getDay()+1;//获取当前日期

    第二,计算出本月一共有多少天。查了半天资料,js下面没有datediff的函数,郁闷。不过在csdn上找了一个(忘了记住那个帅哥的名字了。先谢谢了。找到了一定补上出处)。
    function DateDiff(datePart,startDate,endDate)
            
    {
                
    var miStart = strToDate(startDate);
                
    var miEnd   = strToDate(endDate);
                
    switch(datePart.toLowerCase())
                
    {
                    
    case "year":
                    
    return miEnd.getFullYear()-miStart.getFullYear();
                    
    break;
                    
    case "month":
                    
    return (miEnd.getFullYear()-miStart.getFullYear())*12+miEnd.getMonth()-miStart.getMonth();
                    
    break;
                    
    case "day":
                    
    return (miEnd-miStart)/(1000*24*3600);
                    
    break;
                }

            }

            
    function strToDate(string)
            
    {
                
    var arr=string.split("-");
                
    return new Date(arr[0],arr[1],arr[2]);
            }
    需要注意的是,输入的一定都是字符型的,所以自己日期要先自己转换成为 2006-12-21 这样的格式 。
    本月一号,下月一号,OK就算出来了。

    第三,判断1号之前多少个空格,直接拿1号的星期去减就行了。

    第四,算出来最后有多少个空格,也就是输出5行还是6行。

    有一个问题没弄明白,1号如果是星期1的话,判断总是出问题,所以就把一号单独拿出来判断了
    var emptyWeek=weekstart-1; //1号的日期
                
    if(emptyWeek==0) //1号为星期一的时候出错,所以就单独来判断了
                
    {
                    emptyWeek
    =1;
                }

                
    var startDate = dd[0+"-" + (parseInt(dd[1])-1+ "-1"//获得计算开始日期。
                
    var endDate;
                
    var startDiv; //开始的空格+当月的日期数
                
    var endDiv; //最后的空格
                endDate
    =dd[0+ "-"+ parseInt(dd[1])+"-1"; //计算结束日期
                
                        
                
    var dayOfMonth=DateDiff("day",startDate,endDate); //判断本月日期
                startDiv
    = emptyWeek + dayOfMonth-1;
                
                
    if(startDiv<=35)
                
    {
                    endDiv
    =35-startDiv;
                }

                
    else
                
    {
                    endDiv
    =42-startDiv;
                }

    ok,基本这样日历就能够生成了。
    剩下的就是在循环的时候,根据一些条件,也就异步回来的XML来信息,显示到页面上去了
  • 相关阅读:
    Python基础(2)——数据类型:Numbers、列表、元组、字典、字符串、数据运算
    Exadata V2 Pricing
    Oracle网络TNS协议介绍(revised)
    V$LOCK视图显示TX锁没有对应的TM锁的几种可能现象
    Poor Data Export Performance(revised)
    single quote needed in expdp query?
    No way to disable datapump estimate?
    Oracle网络TNS协议的几个基础类描述(revised)
    logfile switch causes incremental checkpoint?
    图文详解安装NetBackup 6.5备份恢复Oracle 10g rac 数据库(修订)
  • 原文地址:https://www.cnblogs.com/skyakira/p/570412.html
Copyright © 2020-2023  润新知