美文网首页
js获取时间-方法汇总

js获取时间-方法汇总

作者: 小鱼儿_逆流而上 | 来源:发表于2023-08-21 09:49 被阅读0次
小鱼儿心语:人生的成功不在于拿到一副好牌,而是怎样将坏牌打好,当心灵趋与平静;精神便得到永恒;给自己一个微笑吧,太阳每天都是新的。

今天终于有时间整理一下了,平时都是临时百度,很浪费时间,现在就来整理一下,方便日后再次使用:

1、获取当前时间:
    getDate() {
      const year = new Date().getFullYear()
      const month = new Date().getMonth() + 1 < 10 ? '0' + (new Date().getMonth() + 1) : new Date().getMonth() + 1
      const date = new Date().getDate() < 10 ? '0' + new Date().getDate() : new Date().getDate()
      // const hh = new Date().getHours() < 10 ? '0' + new Date().getHours() : new Date().getHours()
      // const mm = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes()
      // const ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds()
      return year + '-' + month + '-' + date
    },
2、获取当前日期是第几周
     getWeektime () {
       let oneDayTime = 1000 * 60 * 60 * 24
       let today = new Date()
       let todayDay = today.getDay() || 7
       let startDate = new Date(
         today.getTime() - oneDayTime * (todayDay - 1)
       )
       let dateList = []
       this.tableDataleader = []
       for (let i = 0; i < 7; i++) {
         let temp = new Date(startDate.getTime() + i * oneDayTime)
         let year = temp.getFullYear()
         let month = temp.getMonth() + 1 < 10 ? '0' + (temp.getMonth() + 1) : temp.getMonth() + 1
         let day = temp.getDate() < 10 ? '0' + temp.getDate() : temp.getDate()
         dateList[i] = `${year}-${month}-${day}`
       }
        return dateList
     },
3、获取指定日期是第几周
    isLeapYear (year) {
      return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)
    },
    getMonthDays (year, month) {
      return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] || (this.isLeapYear(year) ? 29 : 28)
    },
    //  传入date为指定日期:'2023-08-08'
    getWeekNumber (date) {
      var now = new Date(date),
        year = now.getFullYear(),
        month = now.getMonth(),
        days = now.getDate()
      for (var i = 0; i < month; i++) {
        days += this.getMonthDays(year, i)
      }
      var yearFirstDay = new Date(year, 0, 1).getDay() || 7
      var week = null
      if (yearFirstDay == 1) {
        week = Math.ceil(days / yearFirstDay)
      } else {
        days -= (7 - yearFirstDay + 1)
        week = Math.ceil(days / 7) + 1
      }
      console.log(new Date(year, 0, 1).getDay())
      this.weeknum = week
      return week
    },
4、获取上一周、下一周的日期数据(yyyy-mm-dd)
    getTime(time) {
      //time = 7下周  -7上周   0本周
      let date = new Date(); 
      let currentFirstDate = new Date(date);

      let formatDate = function(date) {
        // console.log(date);
        let year = date.getFullYear(); //年
        let month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
         let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
        // let arr = ["日", "一", "二", "三", "四", "五", "六"];
        let week = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"][
          date.getDay()
        ];
        //我需要的格式是  (周几 月.日) 这里看你们的需求
        return year + "-" + month + "-" + day;
      };
      let addDate = function(date, n) {
        // console.log(date.getDate() + n);
        date.setDate(date.getDate() + n);
        return date;
      };
      let setDate = function(date) {
        let week = date.getDay() - 1;
        date = addDate(date, week * -1);
        currentFirstDate = new Date(date);
        let weekList = [];
        for (let i = 0; i < 7; i++) {
          weekList[i] = formatDate(i == 0 ? date : addDate(date, 1));
        }
        return weekList;
      };
      this.thisWeek = []
      // let upWeek = setDate(addDate(currentFirstDate, -7));  //  获取上一周的日期数据
      this.thisWeek = setDate(addDate(currentFirstDate, time)); //  获取上一周 / 下一周的日期数据
      // let nextWeek = setDate(addDate(currentFirstDate, 7)); //  获取下一周的日期数据
      // let today = formatDate(date); //今日日期
    },

持续更新中...

相关文章

网友评论

      本文标题:js获取时间-方法汇总

      本文链接:https://www.haomeiwen.com/subject/wxcdmdtx.html