1.js得到指定日期的前几天的日期
function getBeforeDay(day,fate)
{
var aDate=day.split("-");
var oDate=new Date(aDate[0],aDate[1]-1,aDate[2]);
var tt=oDate.getTime()-1000*60*60*24*fate;
var days=new Date(tt);
return days.Format("yyyy-MM-dd");
}
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子:
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
Date.prototype.Format=function(fmt)
{
var o=
{
"M+":this.getMonth()+1, //月份
"d+":this.getDate(), //日
"h+":this.getHours(), //小时
"m+":this.getMinutes(), //分
"s+":this.getSeconds(), //秒
"q+":Math.floor((this.getMonth()+3) / 3), //季度
"S":this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt))
{
fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));
}
for(var k in o)
{
if(new RegExp("(" + k + ")").test(fmt))
{
fmt=fmt.replace(RegExp.$1,(RegExp.$1.length==1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
2.js获取指定日期的上个月的最后一天
function getUpMonth(t)
{
var tarr=t.split('-');
var year=tarr[0]; //获取当前日期的年
var month=tarr[1]; //获取当前日期的月
var day=tarr[2]; //获取当前日期的日
var year2=year;
var month2=parseInt(month)-1;
if(month2==0)
{
year2=parseInt(year2)-1;
month2=12;
}
if(month2<10)
{
month2='0'+month2;
}
day=getDaysInMonth(year2,month2);
var t2=year2+'-'+month2+'-'+day;
return t2;
}
function getDaysInMonth(year,month)
{
month=parseInt(month,10)+1;
var temp=new Date(year+"/"+month+"/0");
return temp.getDate();
}
3.js获得某一季度上一季度的开始日期
//获得某季度的上一季度的开始日期
//year:年 (yyyy)
//month:月 MM
function getPreQuarterStartTime(year,month)
{
var quarter=parseInt(month);
var jd=0;
if(quarter<=3)
{
jd=1;
}
else if(quarter>3 && quarter<=6)
{
jd=2;
}
else if(quarter>6 && quarter<=9)
{
jd=3;
}
else if(quarter>9 && quarter<=12)
{
jd=4;
}
jd=jd-1;
if(jd==0)
{
jd=4;
}
switch(jd)
{
case 1 : return year+"-01-01";
case 2 : return year+"-04-01";
case 3 : return year+"-07-01";
case 4 : return year+"-10-01";
}
}
4.js获得某一季度上一季度的结束日期
//获得某季度的上一季度的结束日期
//year:年 (yyyy)
//month:月 MM
function getPreQuarterEndTime(year,month)
{
var quarter=parseInt(month);
var jd=0;
if(quarter<=3)
{
jd=1;
}
else if(quarter>3 && quarter<=6)
{
jd=2;
}
else if(quarter>6 && quarter<=9)
{
jd=3;
}
else if(quarter>9 && quarter<=12)
{
jd=4;
}
jd=jd-1;
if(jd==0)
{
jd=4;
}
switch(jd)
{
case 1 : return year+"-03-31";
case 2 : return year+"-06-30";
case 3 : return year+"-09-30";
case 4 : return year+"-12-31";
}
}
5.计算两个日期相差的天数
<span style="font-family:Arial;background-color: rgb(255, 255, 255);"> function DateDiff(sDate1,sDate2)
{
var aDate,oDate1,oDate2,iDays;
aDate=sDate1.split("-");
oDate1=new Date(aDate[0],aDate[1]-1,aDate[2]);
aDate=sDate2.split("-");
oDate2=new Date(aDate[0],aDate[1]-1,aDate[2]);
iDays=parseInt(Math.abs(oDate1-oDate2) / (1000*60*60*24)); //把相差的毫秒数转换为天数
return iDays;
}</span>