一、第一个问题:
我有两个选择框起始日期<input id="StartDate" type="text"  value="" />
                                 <br />
                         终止日期<input id="EndDate" type="text"  value="" />
当我鼠标点击起始日期框时只能选择月首(如:2009-10-1),当我点击终止日期时只能选择月尾(如:2009-10-31)。
当今天为2009-10-2时这个月的月首和月尾都不可以选择,只能选择2009-11-1日为起始日期、2009-11-30为终止日期。
我已付上JS代码下载地址:http://download.csdn.net/source/1760212想请高手给改下或者给点建议谢谢。二、第二个问题:
我需要在月首、月末统计一下,只在月首和月末统计。那位高人给点思路谢谢了。谢谢了。

解决方案 »

  1.   


    Date.prototype.DateAdd = function(strInterval, Number) {    
        var dtTmp = this;   
        switch (strInterval) {    
            case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));   
            case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));   
            case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));   
            case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));   
            case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));   
            case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());   
            case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());   
            case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());   
        }   
    }   
       
    //+---------------------------------------------------   
    //| 姣旇緝鏃ユ湡宸?dtEnd 鏍煎紡涓烘棩鏈熷瀷鎴栬€?鏈夋晥鏃ユ湡鏍煎紡瀛楃涓?  
    //+---------------------------------------------------   
    Date.prototype.DateDiff = function(strInterval, dtEnd) {    
        var dtStart = this;   
        if (typeof dtEnd == 'string' )//濡傛灉鏄瓧绗︿覆杞崲涓烘棩鏈熷瀷   
        {    
            dtEnd = StringToDate(dtEnd);   
        }   
        switch (strInterval) {    
            case 's' :return parseInt((dtEnd - dtStart) / 1000);   
            case 'n' :return parseInt((dtEnd - dtStart) / 60000);   
            case 'h' :return parseInt((dtEnd - dtStart) / 3600000);   
            case 'd' :return parseInt((dtEnd - dtStart) / 86400000);   
            case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));   
            case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);   
            case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();   
        }   
    }
    依据这两段js你的问题应该可以解决吧
      

  2.   

    http://www.cngothic.com/20080417/web-calendar2.html
    http://www.cngothic.com/20080223/web-calendar.html
    这里说了两个日历插件。你试试。点击文本框弹出时间选择器。可以设置精确到秒或天
      

  3.   


    然后,var today = new Date();//今天
    var localMonthFrist = new Date(today.getFullYear(),today.getMonth(),1,0,0,0,0);//本月第一天
    var nextMonthFrist = localMonthFrist.DateAdd('m',1);//下个月第一天
    var nextMonthEnd = localMonthFrist.DateAdd('m',2).DateAdd('d',-1);//下个月最后一天
    alert(nextMonthFrist);
    alert(nextMonthEnd);
    具体怎么给控件赋值你应该会了吧。。
      

  4.   

    修改My97DatePicker脚本
    或在代码中
    DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
    DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
    DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
      

  5.   

    请进http://topic.csdn.net/u/20091023/13/4d8b9b1e-592e-482e-baf4-7b6d247dd501.html