一、第一个问题:
我有两个选择框起始日期<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,想请高手给改下或者给点建议谢谢。二、第二个问题:
我需要在月首、月末统计一下,只在月首和月末统计。那位高人给点思路谢谢了。谢谢了。
我有两个选择框起始日期<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,想请高手给改下或者给点建议谢谢。二、第二个问题:
我需要在月首、月末统计一下,只在月首和月末统计。那位高人给点思路谢谢了。谢谢了。
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你的问题应该可以解决吧
http://www.cngothic.com/20080223/web-calendar.html
这里说了两个日历插件。你试试。点击文本框弹出时间选择器。可以设置精确到秒或天
然后,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);
具体怎么给控件赋值你应该会了吧。。
或在代码中
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();