您的位置:首页 > Web前端 > JavaScript

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

2013-01-14 14:57 489 查看
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">  
开始日期: <input type="text" id="startTime" name="startTime" />
结束日期: <input type="text" id="endTime" name="endTime" />
  <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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: