zoukankan      html  css  js  c++  java
  • JS获取本周、本月、上月、本季度的开始日期、结束日期

    var now = new Date(); //当前日期
    var nowDayOfWeek = now.getDay(); //今天本周的第几天
    var nowDay = now.getDate(); //当前日期号
    var nowMonth = now.getMonth(); //当前月
    var nowYear = now.getYear(); //当前年
    nowYear += (nowYear < 2000) ? 1900 : 0;


    var lastMonthDate = new Date(); //上月日期
    lastMonthDate.setDate(1);//设置日期为本月1号
    lastMonthDate.setMonth(lastMonthDate.getMonth()-1);//设置日期为上个月
    var lastYear = lastMonthDate.getYear();
    var lastMonth = lastMonthDate.getMonth();

    //格式化日期:yyyy-MM-dd
    function formatDate(date) {
    var myyear = date.getFullYear();
    var mymonth = date.getMonth()+1;
    var myweekday = date.getDate();

    if(mymonth < 10){
    mymonth = "0" + mymonth;
    }
    if(myweekday < 10){
    myweekday = "0" + myweekday;
    }
    return (myyear+"-"+mymonth + "-" + myweekday);
    }

    //获得某月的天数 eg:传1获得的为2月份的天数
    function getMonthDays(myMonth){
    var monthStartDate = new Date(nowYear, myMonth, 1);
    var monthEndDate = new Date(nowYear, myMonth + 1, 1);
    var days = (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24);
    return days;
    }

    //获得本季度的开始月份
    function getQuarterStartMonth(){
    var quarterStartMonth = 0;
    if(nowMonth<3){
    quarterStartMonth = 0;
    }
    if(2<nowMonth && nowMonth<6){
    quarterStartMonth = 3;
    }
    if(5<nowMonth && nowMonth<9){
    quarterStartMonth = 6;
    }
    if(nowMonth>8){
    quarterStartMonth = 9;
    }
    return quarterStartMonth;
    }

    //获得本周的开始日期
    function getWeekStartDate() {
    var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek+1);
    return formatDate(weekStartDate);
    }

    //获得本周的结束日期
    function getWeekEndDate() {
    var weekEndDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek));
    return formatDate(weekEndDate);
    }

    //获得本月的开始日期
    function getMonthStartDate(){
    var monthStartDate = new Date(nowYear, nowMonth, 1);
    return formatDate(monthStartDate);
    }

    //获得本月的结束日期
    function getMonthEndDate(){
    var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
    return formatDate(monthEndDate);
    }

    //获得上月开始时间
    function getLastMonthStartDate(){
    var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
    return formatDate(lastMonthStartDate);
    }

    //获得上月结束时间
    function getLastMonthEndDate(){
    var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
    return formatDate(lastMonthEndDate);
    }

    //获得本季度的开始日期
    function getQuarterStartDate(){
    var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
    return formatDate(quarterStartDate);
    }

    //获得本季度的结束日期
    function getQuarterEndDate(){
    var quarterEndMonth = getQuarterStartMonth() + 2;
    var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
    return formatDate(quarterStartDate);
    }
  • 相关阅读:
    无需认证的mail,适用于ZABBIX等运维系统
    Linux交换分区使用过多的处理办法
    zookeeper的单实例和伪集群部署
    Zookeeper分布式集群原理与功能
    Nginx禁止IP直接访问网站
    镜像站地址汇总
    Nginx反向代理后端多节点下故障节点的排除思路
    Redis主从复制与高可用方案
    http_proxy_module模块常用参数
    Nginx实现负载均衡的几种方式
  • 原文地址:https://www.cnblogs.com/wdd-cindy/p/9327810.html
Copyright © 2011-2022 走看看