zoukankan      html  css  js  c++  java
  • js 获取时间 每年 每月 每季度 等

    /** *
    * 获得当前时间
    */
    function getCurrentDate() {
    return new Date()
    }

    /**
    * **得到本季度开始的月份**
    * @param month 需要计算的月份
    ***/
    function getQuarterSeasonStartMonth(month) {
    // var quarterMonthStart = 0
    var spring = 0 // 春
    var summer = 3 // 夏
    var fall = 6 // 秋
    var winter = 9 // 冬
    // 月份从0-11
    if (month < 3) {
    return spring
    }

    if (month < 6) {
    return summer
    }

    if (month < 9) {
    return fall
    }

    return winter
    }
    /**
    * **获得该月的天数**
    * @param year年份
    * @param month月份
    * */
    function getMonthDays(year, month) {
    // 本月第一天 1-31
    var relativeDate = new Date(year, month, 1)
    // 获得当前月份0-11
    var relativeMonth = relativeDate.getMonth()
    // 获得当前年份4位年
    var relativeYear = relativeDate.getFullYear()

    // 当为12月的时候年份需要加1
    // 月份需要更新为0 也就是下一年的第一个月
    if (relativeMonth === 11) {
    relativeYear++
    relativeMonth = 0
    } else {
    // 否则只是月份增加,以便求的下一月的第一天
    relativeMonth++
    }
    // 一天的毫秒数
    var millisecond = 1000 * 60 * 60 * 24
    // 下月的第一天
    var nextMonthDayOne = new Date(relativeYear, relativeMonth, 1)
    // 返回得到上月的最后一天,也就是本月总天数
    return new Date(nextMonthDayOne.getTime() - millisecond).getDate()
    }
    // **时间格式化**
    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)
    }
    /** *
    * **得到本年的起止日期**
    *
    */
    function getCurrentYear() {
    // 起止日期数组
    var startStop = []
    // 获取当前时间
    var currentDate = getCurrentDate()
    // 获得当前年份4位年
    var currentYear = currentDate.getFullYear()

    // 本年第一天
    var currentYearFirstDate = new Date(currentYear, 0, 1)
    // 本年最后一天
    var currentYearLastDate = new Date(currentYear, 11, 31)
    // 添加至数组
    startStop.push(formatDate(currentYearFirstDate))
    startStop.push(formatDate(currentYearLastDate))
    // 返回
    return startStop
    }
    /**
    * **得到本半年开始的月份**
    * @param month 需要计算的月份
    ***/
    function getYearStartMonth(month) {
    // var quarterMonthStart = 0
    var up = 0 // 上
    var down = 6 // 下
    // 月份从0-11

    if (month < 6) {
    return up
    }else{
    return down
    }
    }
    /**
    * **获得本半年的起止日期**
    */
    function getHalfYearSeason() {
    // 起止日期数组
    var startStop = []
    // 获取当前时间
    var currentDate = getCurrentDate()
    // 获得当前月份0-11
    var currentMonth = currentDate.getMonth()
    // 获得当前年份4位年
    var currentYear = currentDate.getFullYear()
    // 获得本季度开始月份
    var quarterSeasonStartMonth = getYearStartMonth(currentMonth)
    // 获得本季度结束月份
    var quarterSeasonEndMonth = quarterSeasonStartMonth + 5

    // 获得本季度开始的日期
    var quarterSeasonStartDate = new Date(currentYear, quarterSeasonStartMonth, 1)
    // 获得本季度结束的日期
    var quarterSeasonEndDate = new Date(currentYear, quarterSeasonEndMonth, getMonthDays(currentYear, quarterSeasonEndMonth))
    // 加入数组返回
    startStop.push(formatDate(quarterSeasonStartDate))
    startStop.push(formatDate(quarterSeasonEndDate))
    // 返回
    return startStop
    }
    /**
    * **获得本季度的起止日期**
    */
    function getCurrentSeason() {
    // 起止日期数组
    var startStop = []
    // 获取当前时间
    var currentDate = getCurrentDate()
    // 获得当前月份0-11
    var currentMonth = currentDate.getMonth()
    // 获得当前年份4位年
    var currentYear = currentDate.getFullYear()
    // 获得本季度开始月份
    var quarterSeasonStartMonth = getQuarterSeasonStartMonth(currentMonth)
    // 获得本季度结束月份
    var quarterSeasonEndMonth = quarterSeasonStartMonth + 2

    // 获得本季度开始的日期
    var quarterSeasonStartDate = new Date(currentYear, quarterSeasonStartMonth, 1)
    // 获得本季度结束的日期
    var quarterSeasonEndDate = new Date(currentYear, quarterSeasonEndMonth, getMonthDays(currentYear, quarterSeasonEndMonth))
    // 加入数组返回
    startStop.push(formatDate(quarterSeasonStartDate))
    startStop.push(formatDate(quarterSeasonEndDate))
    // 返回
    return startStop
    }
    /**
    * **获得本月的起止日期**
    */
    function getMonthEndDate() {
    // 起止日期数组
    var startStop = []
    // 获取当前时间
    var currentDate = getCurrentDate()
    // 获得当前月份0-11
    var currentMonth = currentDate.getMonth()
    // 获得当前年份4位年
    var currentYear = currentDate.getFullYear()
    //当前日
    var nowDay = currentDate.getDate();

    var monthStartDate = new Date(currentYear, currentMonth, 1);
    var monthEndDate = new Date(currentYear, currentMonth, getMonthDays(currentMonth, currentMonth));
    // 加入数组返回
    startStop.push(formatDate(monthStartDate))
    startStop.push(formatDate(monthEndDate))
    // 返回
    return startStop
    }
    /**
    * **获得本周的起止日期**
    */
    function getWeekDate() {
    // 起止日期数组
    var startStop = []
    // 获取当前时间
    var currentDate = getCurrentDate()
    // 获得当前月份0-11
    var currentMonth = currentDate.getMonth()
    // 获得当前年份4位年
    var currentYear = currentDate.getFullYear()
    //今天本周的第几天
    var nowDayOfWeek = currentDate.getDay();
    //当前日
    var nowDay = currentDate.getDate();

    var weekStartDate = new Date(currentYear, currentMonth, nowDay - nowDayOfWeek + 1);
    var weekEndDate = new Date(currentYear, currentMonth, nowDay + (6 - nowDayOfWeek) + 1);
    // 加入数组返回
    startStop.push(formatDate(weekStartDate))
    startStop.push(formatDate(weekEndDate))
    // 返回
    return startStop
    }
    /**
    * **获得本日的起止日期**
    */
    function getDayDate() {
    // 起止日期数组
    var startStop = []
    // 获取当前时间
    var currentDate = getCurrentDate()
    // 加入数组返回
    startStop.push(formatDate(currentDate))
    startStop.push(formatDate(currentDate))
    // 返回
    return startStop
    }

    function getStartEnd(index){
    var startStop = []
    switch(index) {
    case 0:
    startStop=getDayDate()
    break;
    case 1:
    startStop=getWeekDate()
    break;
    case 2:
    startStop=getMonthEndDate()
    break;
    case 3:
    startStop=getCurrentSeason()
    break;
    case 4:
    startStop=getHalfYearSeason()
    break;
    case 5:
    startStop=getCurrentYear()
    break;
    default:
    }
    return startStop;
    }

    //本日
    //本周
    //本月
    //本季度
    //本半年
    //本年
    console.log(getCurrentYear());
    console.log(getHalfYearSeason());
    console.log(getCurrentSeason());
    console.log(getMonthEndDate());
    console.log(getWeekDate());
    console.log(getDayDate());
    console.log(getStartEnd(1));
    </script>

  • 相关阅读:
    Tensorflow 学习
    几种常见损失函数
    两人比赛先选后选谁获胜系列的动态规划问题
    LeetCode 全解(bug free 训练)
    局部敏感哈希LSH
    Annoy解析
    MCMC例子
    TinyBERT简单note
    ALBERT简单note
    求根号2, 网易的一道面试题
  • 原文地址:https://www.cnblogs.com/liangbo-/p/14582715.html
Copyright © 2011-2022 走看看