Date

   var date = new Date()
    var seperator1 = '-'
    var y = date.getFullYear()
    var m = date.getMonth() + 1
    var d = date.getDate()
    var h = date.getHours() // 当前小时
    
    var arr31 = [1, 3, 5, 7, 8, 10, 12]

    function getTime(y, m, d, h) {
      // 先判断开始日期
      if (h < 23) {
        // 情况一 未到23点
        h++
      } else {
        // 到23点 时间归0
        h = 0
        // 先判断是否是最后一天
        if (arr31.indexOf(m) !== -1) {
          // 本月有31天
          if (d < 31) {
            d++
          } else {
            d = 1 
            if (m < 12) {
              m++
            } else {
              m = 1
              y++ 
            }
          }
        } else if (m === 2) {
          // 2月判断是否是闰年
          if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0 ) {
            // 是闰年 本月有29天
            if (d < 29) {
              d++
            } else {
              d = 1 
              m++
            }
          } else {
            // 不是闰年 本月有28天
            if (d < 28) {
              d++
            } else {
              d = 1 
              m++
            }
          }
        } else {
          // 本月有30天
          if (d < 30) {
            d++
          } else {
            d = 1 
            m++
          }
        }
      }
      var obj = {
        str: y + '-' + check(m) + '-' + check(d) + ' ' + check(h) + ':00',
        y : y,
        m: m,
        d: d,
        h: h
      }
      return obj 
    }

    function check (num) {
      // 不满10加0
      return num < 10 ? ('0'+num) : num
    }
    // var obj = getTime(y, 4, 30, 22) // 测试30天
    // var obj = getTime(y, 12, 31, 22) // 测试31天
    // var obj = getTime(y, 2, 28, 22) // 测试平年2月
    // var obj = getTime(2020, 2, 28, 22) // 测试润年2月
    // var obj = getTime(2020, 2, 29, 22) // 测试润年2月
    var obj = getTime(y, m, d, h) // 当前日期
    // obj.str 是加一个小时 
    // getTime(obj.y, obj.m, obj.d, obj.h).str 是加两个小时
    console.log(obj.str + ' ~ ' + getTime(obj.y, obj.m, obj.d, obj.h).str)

  

猜你喜欢

转载自www.cnblogs.com/mxy666/p/8964409.html