zoukankan      html  css  js  c++  java
  • js获取本周、上周的开始结束时间

    这两天在做一个报表体统,其中涉及到了一个根据本周,上周,本月,上月的时间来进行查询的问题,在这个我就教一下大家怎么实现,大家如果有更好的实现方法的,我也希望大家能说出来,我们交流交流.

    首先呢,我写了一个方法,能实现获取本周,上周的开始时间,并且解决了跨年的问题

    在这里先说明一下,月份,周几都是从0开始的这一点是需要我们注意的.

    本周,上周的开始结束时间

    function getTime(n){
    var now=new Date();
    var year=now.getFullYear();
    //因为月份是从0开始的,所以获取这个月的月份数要加1才行
    var month=now.getMonth()+1;
    var date=now.getDate();
    var day=now.getDay();
    console.log(date);
    //判断是否为周日,如果不是的话,就让今天的day-1(例如星期二就是2-1)
    if(day!==0){
    n=n+(day-1);
    }
    else{
    n=n+day;
    }
    if(day){
    //这个判断是为了解决跨年的问题
    if(month>1){
    month=month;
    }
    //这个判断是为了解决跨年的问题,月份是从0开始的
    else{
    year=year-1;
    month=12;
    }
    }
    now.setDate(now.getDate()-n);
    year=now.getFullYear();
    month=now.getMonth()+1;
    date=now.getDate();
    console.log(n);
    s=year+"年"+(month<10?('0'+month):month)+"月"+(date<10?('0'+date):date)+"日";
    return s;
    }

    /***参数都是以周一为基准的***/
    //上周的开始时间
    console.log(getTime(7));
    //上周的结束时间
    console.log(getTime(1));
    //本周的开始时间
    console.log(getTime(0));
    //本周的结束时间
    console.log(getTime(-6));

    上个月的结束时间

    解决思路:

    1.用户可以选择是否传入时间串,如果传入的话,就按传入的时间串定义时间,如果不是的话,就按当前时间来定义时间

    2.判断当前的月份或者要判断的时间的当前月是否是1月份,如果是的话,那么年份就要-1,上个月的月份就是12月份

    3.如果不是一月份的话,那么年份就不要-1,因为是同一年,所以只要月份-1就可以了

    4.获取最后一天思路是:获取下个月第一天离1970年的毫秒数,然后减去一天时间的毫秒数,就是这个月的最后一天离1970年的毫秒数,根据这个毫秒数计算即可

    function getMonth(dateStr){
    let last_year=0,last_month=0,last_date=0,now=''
    if(dateStr){
    now=new Date(dateStr)
    }
    else{
    now=new Date()
    }

    let year=now.getFullYear()
    let month=(now.getMonth()+1).toString().padStart(2, '0')
    let date=now.getDate().toString().padStart(2, '0')

    if(month==1){
    last_year=year-1
    last_month=12
    last_date=new Date(last_year,last_month,1)
    return `${last_year}:${last_month}:${(new Date(last_date.getTime()-1000*60*60*24)).getDate()}`
    }
    else{
    last_date=new Date(year,month-1,1)
    return `${year}:${(month-1).toString().padStart(2,0)}:${(new Date(last_date.getTime()-1000*60*60*24)).getDate()}`

    }
    }

  • 相关阅读:
    jquery attribute!=value选择器 语法
    jquery attribute=value选择器 语法
    jquery attribute选择器 语法
    jquery visible 选择器 语法
    jquery empty选择器 语法
    jquery contains选择器 语法
    jquery animated选择器 语法
    jquery header选择器 语法
    jquery lt选择器 语法
    jquery gt选择器 语法
  • 原文地址:https://www.cnblogs.com/cythia/p/6733865.html
Copyright © 2011-2022 走看看