javascript日期处理-通过一个字符串的日期得到所在周、上周及下周的第一天和最后一天

项目需求:


<input type="hidden" id="today">

<script>
//把时间类型的数字转换为各种需要的字符串
function MM_dateFormat(rq, fenge) {
    //格式化日期显示
    //fenge   =   0     :2006-02-28   12:34:23
    //fenge   =   1     :2006-02-28
    //fenge   =   2     :2006年2月28日
    //fenge   =   3     :2月28日
    //fenge   =   4     :28/2
    //fenge   =   5     :二○○六年二月二十八日
    //fenge   =   6     :12:34:23
    //fenge   =   7     :20060228
    if((fenge == null) || (fenge == "")) fenge = 0;
    if((rq == "") || (rq == null)) var tmpDate = new Date();
    else var tmpDate = new Date(rq);
    var result = "";
    switch(fenge) {
    case 1:
        result += tmpDate.getFullYear() + "-";
        if((tmpDate.getMonth() + 1) < 10) result += "0" + (tmpDate.getMonth() + 1) + "-";
        else result += (tmpDate.getMonth() + 1) + "-";
        if(tmpDate.getDate() < 10) result += "0" + tmpDate.getDate();
        else result += tmpDate.getDate();
        break;
    case 2:
        result = tmpDate.getFullYear() + "年" + (tmpDate.getMonth() + 1) + "月" + tmpDate.getDate() + "日";
        break;
    case 3:
        result = (tmpDate.getMonth() + 1) + "月" + tmpDate.getDate() + "日";
        break;
    case 4:
        result = tmpDate.getDate() + "/" + (tmpDate.getMonth() + 1);
        break;
    case 5:
        var zhifu = "○一二三四五六七八九十";
        var zhrq = "";
        var nan = String(tmpDate.getFullYear());
        for(iii = 0; iii < nan.length; iii++) {
            zhrq += zhifu.substr(nan.substr(iii, 1), 1);
        }
        zhrq += "年";
        var nan = String(tmpDate.getMonth() + 1);
        if(nan.length == 2) {
            if(nan.substr(0, 1) == "1") zhrq += "十";
            else zhrq += zhifu.substr(nan.substr(0, 1), 1) + "十";
            if(nan.substr(1, 1) == "0") zhrq += "月";
            else zhrq += zhifu.substr(nan.substr(1, 1), 1) + "月"
        } else {
            zhrq += zhifu.substr(nan.substr(0, 1), 1) + "月";
        }
        var nan = String(tmpDate.getDate());
        if(nan.length == 2) {
            if(nan.substr(0, 1) == "1") zhrq += "十";
            else zhrq += zhifu.substr(nan.substr(0, 1), 1) + "十";
            if(nan.substr(1, 1) == "0") zhrq += "日";
            else zhrq += zhifu.substr(nan.substr(1, 1), 1) + "日"
        } else {
            zhrq += zhifu.substr(nan.substr(0, 1), 1) + "日";
        }
        result = zhrq;
        break;
    case 6:
        if(tmpDate.getHours() < 10) result += "0" + tmpDate.getHours();
        else result += "" + tmpDate.getHours();
        if(tmpDate.getMinutes() < 10) result += ":0" + tmpDate.getMinutes();
        else result += ":" + tmpDate.getMinutes();
        if(tmpDate.getSeconds() < 10) result += ":0" + tmpDate.getSeconds();
        else result += ":" + tmpDate.getSeconds();
        break;
    case 7:
        result += tmpDate.getFullYear();
        if((tmpDate.getMonth() + 1) < 10) result += "0" + (tmpDate.getMonth() + 1);
        else result += (tmpDate.getMonth() + 1);
        if(tmpDate.getDate() < 10) result += "0" + tmpDate.getDate();
        else result += tmpDate.getDate();
        break;
    default:
        result += tmpDate.getFullYear() + "-";
        if((tmpDate.getMonth() + 1) < 10) result += "0" + (tmpDate.getMonth() + 1) + "-";
        else result += (tmpDate.getMonth() + 1) + "-";
        if(tmpDate.getDate() < 10) result += "0" + tmpDate.getDate();
        else result += tmpDate.getDate();
        if(tmpDate.getHours() < 10) result += "   0" + tmpDate.getHours();
        else result += "   " + tmpDate.getHours();
        if(tmpDate.getMinutes() < 10) result += ":0" + tmpDate.getMinutes();
        else result += ":" + tmpDate.getMinutes();
        if(tmpDate.getSeconds() < 10) result += ":0" + tmpDate.getSeconds();
        else result += ":" + tmpDate.getSeconds();
        break;
    }
    return result;
}


//得到每周的第一天(周一)
function getFirstDateOfWeek(theDate){
 var firstDateOfWeek;
 theDate.setDate(theDate.getDate() + 1 - theDate.getDay());
 firstDateOfWeek = theDate;
 return firstDateOfWeek;
}
//得到每周的最后一天(周日)
function getLastDateOfWeek(theDate){
 var lastDateOfWeek;
 theDate.setDate(theDate.getDate() +7 - theDate.getDay());
 lastDateOfWeek = theDate;
 return lastDateOfWeek;
}

//得到上周的第一天(周一)
function getPreviousFirstDateOfWeek(theDate){
 var firstDateOfWeek;
 theDate.setDate(theDate.getDate() - 6 - theDate.getDay());
 firstDateOfWeek = theDate;
 return firstDateOfWeek;
}
//得到上周的最后一天(周日)
function getPreviousLastDateOfWeek(theDate){
 var lastDateOfWeek;
 theDate.setDate(theDate.getDate() +7 - theDate.getDay());
 lastDateOfWeek = theDate;
 return lastDateOfWeek;
}

//得到下周的第一天(周一)
function getNextFirstDateOfWeek(theDate){
 var firstDateOfWeek;
 theDate.setDate(theDate.getDate() + 8 - theDate.getDay());
 firstDateOfWeek = theDate;
 return firstDateOfWeek;
}
//得到下周的最后一天(周日)
function getNextLastDateOfWeek(theDate){
 var lastDateOfWeek;
 theDate.setDate(theDate.getDate() +7 - theDate.getDay());
 lastDateOfWeek = theDate;
 return lastDateOfWeek;
}

//将时间格式的字符串转为时间格式
function strToDate(dateStr){
    var year = dateStr.substr(0,4);
    var month = dateStr.substr(5,2);
    var day = dateStr.substr(8,2);
    var temDate = month+'/'+day+'/'+year;
    return new Date(temDate);
}

$(document).ready(function(){

  $("input[name=user_type]").click(function(){
    var flag='';
    $("input[name=user_type]").filter(':checked').each(function(){
     flag+=$(this).val();
    });
    if(flag=='') return false;
    var date=$("#today").val();
    get(date)
  });

  //上周
  $("#pre").click(function(){
      var tD=strToDate($("#today").val());
      var first = MM_dateFormat(getPreviousFirstDateOfWeek(tD).toString(),1);
      var last= MM_dateFormat(getPreviousLastDateOfWeek(tD).toString(),1);
      $("#today").val(first);
        $("#curr").html(first+'-'+last);
        get(first);
  }).addClass("pointer");

  //下周
  $("#next").click(function(){
      var tD=strToDate($("#today").val());

      var first = MM_dateFormat(getNextFirstDateOfWeek(tD).toString(),1);
      var last= MM_dateFormat(getNextLastDateOfWeek(tD).toString(),1);

      $("#today").val(first);
        $("#curr").html(first+'-'+last);
        get(first);
  }).addClass("pointer");

  var theDate="<?php echo date('Y-m-d');?>";
  $("#today").val(theDate);
  var tD=strToDate(theDate);
  var nWeekFirstDay = getFirstDateOfWeek(tD).toString();
  var nWeekLastDay= getLastDateOfWeek(tD).toString();
  var ch = MM_dateFormat(nWeekFirstDay,1);
  var ch1 = MM_dateFormat(nWeekLastDay,1);

  //alert("本周一的时间是:" + ch);
  //alert("本周日的时间是:" + ch1);
  $("#curr").html(ch+'-'+ch1);
  get($("#today").val());
});

<table width="100%" border="0" style="background-color:#6a6a6a;color:#fff;vertical-align:middle;height:50px;">
<tr>
<td class="linkcss" style="text-align:left;"><span style="padding-left:20px;background:url(images/resultset_previous.png) no-repeat 0px 0px;" id="pre">上一周</span></td>
<td style="text-align:center;padding:5px 0px 5px 0px;font-size:30px;font-weight:bold;" id="curr"></td>
<td class="linkcss" style="text-align:right;"><span style="padding-right:20px;background:url(images/resultset_next.png) no-repeat 40px 0px;" id="next">下一周</span></td>
</tr>
</table>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值