加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

JS获取任意日期(昨天,今天,明天,上周...)

(2012-12-18 09:38:13)
标签:

杂谈

分类: Web

jsp页面:

<tr>

<td class="td_s" bgcolor="#c0f0fb">

<select name="stdDateFilter" onchange='showDate(this.options[this.selectedIndex].value )'>

<option value="custom">自定义</option>

<option value="prevfy">上年</option>

<option value="thisfy">本年</option>

<option value="nextfy">下年</option>

<option value="prevfq">上季度</option>

<option value="thisfq">本季度</option>

<option value="nextfq">下季度</option>

<option value="yesterday">昨天</option>

<option value="today">今天</option>

<option value="tomorrow">明天</option>

<option value="lastweek">上星期</option>

<option value="thisweek">本星期</option>

<option value="nextweek">下星期</option>

<option value="lastmonth">上月</option>

<option selected value="thismonth">本月</option>

<option value="nextmonth">下月</option>>

</select>

</td>

<td  class="td_s"colspan="12" bgcolor="#c0f0fb">&nbsp;&nbsp;

开始日期: <input type="text" id="startTime" name="startTime" />

结束日期: <input type="text" id="endTime" name="endTime" />

&nbsp;&nbsp;<input type="submit" value="查询"/></td>

</tr>


<script type="text/javascript">

function showDate( type )

{

if (type!="custom")

{

   document.getElementByIdx_x_x_x("startTime").readOnly=true;

document.getElementByIdx_x_x_x("endTime").readOnly=true;

}

else

{

   document.getElementByIdx_x_x_x("startTime").readOnly=false;

document.getElementByIdx_x_x_x("endTime").readOnly=false;

}

if( type == "today" )// 当前日期

{

document.getElementByIdx_x_x_x("startTime").value = getDate(0);

document.getElementByIdx_x_x_x("endTime").value = getDate(0);

}

else if( type == "yesterday" )// 昨天

{

document.getElementByIdx_x_x_x("startTime").value = getDate(-1);

document.getElementByIdx_x_x_x("endTime").value = getDate(-1);

}

else if( type == "tomorrow" ) // 明天

{

document.getElementByIdx_x_x_x("startTime").value = getDate(1);

document.getElementByIdx_x_x_x("endTime").value = getDate(1);

}

else if( type == "thisweek" )// 本周

{

document.getElementByIdx_x_x_x("startTime").value = getDate(-monday);

document.getElementByIdx_x_x_x("endTime").value = getDate(-monday+6);

}

else if( type == "lastweek" )// 上周

{

document.getElementByIdx_x_x_x("startTime").value = getDate(-monday-7);

document.getElementByIdx_x_x_x("endTime").value = getDate(-monday-1);

}

else if( type == "nextweek" )// 下周

{

document.getElementByIdx_x_x_x("startTime").value = getDate(-monday+7);

document.getElementByIdx_x_x_x("endTime").value = getDate(-monday+13);

}

else if( type == "thismonth" )// 本月

{

document.getElementByIdx_x_x_x("startTime").value = getMonth("s",0);

document.getElementByIdx_x_x_x("endTime").value = getMonth("e",0);

}

else if( type == "lastmonth" )// 上个月

{

document.getElementByIdx_x_x_x("startTime").value = getMonth("s",-1);

document.getElementByIdx_x_x_x("endTime").value = getMonth("e",-1);

}

else if( type == "nextmonth" )// 下个月

{

document.getElementByIdx_x_x_x("startTime").value = getMonth("s",1);

document.getElementByIdx_x_x_x("endTime").value = getMonth("e",1);

}

else if( type == "thisfy" )// 本年

{

document.getElementByIdx_x_x_x("startTime").value = getYears("s",0);

document.getElementByIdx_x_x_x("endTime").value = getYears("e",0);

}

else if( type == "prevfy" )// 去年

{

document.getElementByIdx_x_x_x("startTime").value = getYears("s",-1);

document.getElementByIdx_x_x_x("endTime").value = getYears("e",-1);

}

else if( type == "nextfy" )// 明年

{

document.getElementByIdx_x_x_x("startTime").value = getYears("s",1);

document.getElementByIdx_x_x_x("endTime").value = getYears("e",1);

}

else if( type == "nextfq" )// 下季度

{

document.getElementByIdx_x_x_x("startTime").value = getQF("s",3);

document.getElementByIdx_x_x_x("endTime").value = getQF("E",3);

}

else if( type == "prevfq" )// 上季度

{

document.getElementByIdx_x_x_x("startTime").value = getQF("s",-3);

document.getElementByIdx_x_x_x("endTime").value = getQF("E",-3);

}

else if( type == "thisfq" )// 本季度

{

document.getElementByIdx_x_x_x("startTime").value = getQF("s",0);

document.getElementByIdx_x_x_x("endTime").value = getQF("e",0);

}

else

{

document.getElementByIdx_x_x_x("startTime").value = "";

document.getElementByIdx_x_x_x("endTime").value = "";

}

}

</script>


js代码:

function getDate(dates){

var dd = new Date();

    dd.setDate(dd.getDate()+dates);

    var y = dd.getFullYear();

    var m = dd.getMonth()+1;

    var d = dd.getDate();

    

return y+"-"+m+"-"+d;

}


function getMonday(){

var d = new Date();

var year = d.getFullYear();

    var month = d.getMonth()+1;

    var date = d.getDate();


// 周

var day=d.getDay();

var monday = day!=0?day-1:6; // 本周一与当前日期相差的天数


return monday;

}


function getMonth(type,months){

var d = new Date();

var year = d.getFullYear();

var month = d.getMonth()+1;


if(months!=0){

// 如果本月为12月,年份加1,月份为1,否则月份加1。

if(month==12 && months>0){

year++;month=1;

}else if(month==1 && months<0){

year--;month=12;

}else{

month = month+months;

}

}

    var date = d.getDate();

    var firstday=year+"-"+month+"-"+1;

var lastday="";

if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){

lastday = year+"-"+month+"-"+31;

}else if(month==2){

// 判断是否为闰年(能被4整除且不能被100整除 或 能被100整除且能被400整除)

if((year%4==0 && year0!=0)||(year0==0 && year@0==0)){

lastday = year+"-"+month+"-"+29;

}else{

lastday = year+"-"+month+"-"+28;

}

}else{

lastday = year+"-"+month+"-"+30;

}

var day = "";

if(type=="s"){

day = firstday;

}else{

day = lastday;

}

return day;

}


function getQFMonth(month){

var quarterMonthStart=0; 

var spring=1; //春  

var summer=4; //夏  

var fall=7;   //秋  

var winter=10;//冬  

if(month<3){ return spring; } 

if(month<6){ return summer; } 

if(month<9){ return fall; } 

return winter; 

}; 


function getQF(type,months){

var d = new Date();

var year = d.getFullYear();

    var month = d.getMonth()+1;

    var qfmonth = getQFMonth(month);


    if(months!=0){

    if(qfmonth==10 && months>0){

    year++;qfmonth=1;

    }else if(qfmonth==1 && months<0){

    year--;qfmonth=10;

    }else{

    qfmonth = qfmonth+months;

    }

    }

    

    var fd = year+"-"+qfmonth+"-"+1;

    var ed = "";

    if(qfmonth==1 || qfmonth==10){

ed = year+"-"+(qfmonth+2)+"-"+31;

    }else{

ed = year+"-"+(qfmonth+2)+"-"+30;

    }


    var qf = "";

if(type=="s"){

qf = fd;

}else{

qf = ed;

}

return qf;

}


function getYears(type,years){

var d = new Date();

var year = d.getFullYear();


    var fd = (year+years)+"-"+01+"-"+01;

    var ed = (year+years)+"-"+12+"-"+31;


    var yr = "";

if(type=="s"){

yr = fd;

}else{

yr = ed;

}

return yr;

}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有