日期時間的獲取


使用moment插件

// 需要先 npm i moment
// 再import moment from 'moment'

// 1.獲取當前年
  const curYear = new Date().getFullYear()

// 2.獲取當前周
  const curWeek = moment().format("W")

// 3.獲取當前周的開始日期和結束日期
  let weekOfDay = parseInt(moment().format('E'));//計算今天是這周第幾天
  let last_monday = moment().startOf('day').subtract(weekOfDay - 1, 'days').toDate();//周一日期
  let last_sunday =  moment().startOf('day').subtract(weekOfDay - 7, 'days').toDate();//周日日期

//4.獲取某年某周的開始日期和結束日期
  const year = 2022
  const week = 29
  let  weekdays = []
  weekdays[0] = moment(`${year}-${week}`,'GGGG-WW').format('YYYY.MM.DD')
  weekdays[1] = moment(`${year}-${week}`,'GGGG-WW').weekday(7).format('YYYY.MM.DD')

//5. 上周下周日期變化
  // 日期格式獲取
  const  getLastWeek = (i) => {
    let weekOfDay = parseInt(moment().format('E'));//計算今天是這周第幾天
    let last_monday = moment().startOf('day').subtract(weekOfDay + 7 * i - 1, 'days').toDate();//周一日期
    let last_sunday =  moment().startOf('day').subtract(weekOfDay + 7 * (i - 1), 'days').toDate();//周日日期
    week = moment(last_monday).format('W') //獲取此日期所在周
    year = moment(last_monday).format('Y')  //獲得此日期所在年
    return [moment(last_monday).format('YYYY.MM.DD'), moment(last_sunday).format('YYYY.MM.DD')]
  }
  // 上周
  const beforeWeek = () => {
    weekCount++
    weekdays = getLastWeek(weekCount.value)
  }
  // 下周
  const nextWeek = () => {
    weekCount--
    weekdays = getLastWeek(weekCount.value)
  }

 

// 6. 獲取一周內的所有日期

// moment.locale(“zh-cn”, {});是為了讓獲取到的周期變為中文 默認是英文的
 import moment from "moment"; 
 moment.locale("zh-cn", {
 
    weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_")
    
   });

export function cycle(val) {
    let time = moment(val[0]).startOf("week");
    let weekArr = []
    for (let i = 1; i < 6; i++) {
        let tempTime = moment(time).weekday(i);
        let tr = moment(tempTime).format("YYYY-MM-DD (dddd)");
        tr = tr.replace("星期", "周");
        weekArr.push(tr);
    }
    return weekArr 
   }  

// 使用方法
changeTime(val) {
      
     this.weekArr=cycle(val)
 },

 

// 獲取指定日期的當前周的第一天
moment('2022-10-01').isoWeekday(1).format('YYYY-MM-DD')

// 獲取指定日期的當前周的最后一天
moment('2022-10-01').isoWeekday(7).format('YYYY-MM-DD')

 

 

// 通過時間戳獲取星期幾

getWeek (date) { // 參數時間戳
      let week = moment(date).day()
      switch (week) {
        case 1:
          return '周一'
        case 2:
          return '周二'
        case 3:
          return '周三'
        case 4:
          return '周四'
        case 5:
          return '周五'
        case 6:
          return '周六'
        case 0:
          return '周日'
      }
    }

 

// 獲取當前的日期和時間 格式化
moment().format('YYYY-MM-DD HH:mm:ss');

// 獲取指定時間
moment(new Date()).format('YYYY-MM-DD HH:mm:ss');

// 時間差值
let m1 = moment('2022-10-14 11:00:00')
let m2 = moment('2022-10-14  11:00:01');

// 2022-10-14  11:00:01 - 2022-10-14  11:00:00 = 1
m2.diff(m1, 'second')

// 解析時間
moment("2019-10-25 16:08:05").format('YYYY-MM-DD');

console.log(moment.year()); // 2022
console.log(moment.month()); // ( 0 到 11)
console.log(moment.date()); // 12
console.log(moment.hour()); // 11
console.log(moment.minute()); // 08
console.log(moment.second()); // 27

console.log(moment.toObject());
// {
//     years: 2022,
//     months: 11,
//     date: 12,
//     hours: 11,
//     minutes: 08,
//     seconds: 27,
//     milliseconds: 728
// }

// 減3 天
moment().subtract(3, 'days');

// 加1 天
moment().add(1, 'days');

 

// 當前年
moment().year(); // Number

// 當前月
moment().format('MM')

// 當前季度
moment(new Date()).quarter();

上一年:moment().add(-1, 'y').format("YYYY")
下一年:moment().add(1, 'y').format("YYYY")

上一季度:moment().add(-1, 'Q').quarter()
下一季度:moment().add(1, 'Q').quarter()

// 年開始結束時間
moment().startOf('year')
moment().endOf('year')

當前季度的開始結束時間:
moment().startOf('quarter').format("YYYY-MM-DD")
moment().endOf('quarter').format("YYYY-MM-DD")
 
指定年指定季度的開始結束時間:(某年某季度的開始結束時間)
moment(moment().format("YYYY-02-01")).startOf('quarter').format("YYYY-MM-DD")
moment(moment().format("YYYY-02-01")).endOf('quarter').format("YYYY-MM-DD")

// 月度開始結束時間
moment().startOf('month')
moment().endOf('month')


// 獲取指定月份的第一天
moment(日期).startOf("month").format("YYYY-MM-DD");

// 獲取指定月份的最后一天
moment(日期).endOf('month').format("YYYY-MM-DD");

// .獲取指定月份的上月份的第一天
moment(日期).subtract(1, 'months').startOf('month').format('YYYY-MM-DD');

// 獲取指定月份的上月份的最后一天
moment(日期).subtract(1, 'months').endOf('month').format('YYYY-MM-DD');

// 獲取指定年份的第一天
moment(日期).startOf('year').format("YYYY-MM-DD");

// 將分鍾轉化成小時分鍾
moment.utc(moment.duration(60, "minutes").asMilliseconds()).format("H:mm")//1:00

// 將分鍾轉化成小時分鍾
moment.utc(moment.duration(60, "minutes").asMilliseconds()).format("H:mm")//1:00

// 通過時間戳轉換具體年月日
moment(parseInt(‘時間戳值’)).format('YYYY/MM/DD hh:mm:ss')

  

 

原生獲取

獲取當前時間:

var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
alert(year + '-' + month + '-' + day  + ' ' + hour + ':' + minute + ':' + second);

獲取一周后時間

// 獲取1周后的日期
var weekDate = this.$moment().add(7,'weekd')

// 將獲取的日期轉換指定的格式
this.$moment(weekDate).format('MM-DD')

 

獲取一星期前的時間:

var now = new Date();
var date = new Date(now.getTime() - 7 * 24 * 3600 * 1000);
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
alert(year + '-' + month + '-' + day  + ' ' + hour + ':' + minute + ':' + second);

 

 vue獲取當前時間-實時刷新

 

獲取當前系統時間,在頁面上展示 年月日 時分秒 ,並且實時刷新,和系統時間保持一致
1.在deta 里面聲明兩個變量;2.把時間調用寫在created() 生命周期里面,進入頁面就需要調用;3.離開頁面使用beforeDestroy() 銷毀
data() {
    return {
      timer: "",//定義一個定時器的變量
      currentTime: new Date(), // 獲取當前時間
    };
  },
created() {
    var _this = this; //聲明一個變量指向Vue實例this,保證作用域一致
    this.timer = setInterval(function() {
      _this.currentTime = //修改數據date
        new Date().getFullYear() +
        "-" +
        (new Date().getMonth() + 1) +
        "-" +
        new Date().getDate() +
        " " +
        new Date().getHours() +
        ":" +
        new Date().getMinutes() +
        ": " +
        new Date().getSeconds();
    }, 1000);
  },
beforeDestroy() {
    if (this.timer) {
      clearInterval(this.timer); // 在Vue實例銷毀前,清除我們的定時器
    }
  }

拿到的時間格式是 2021-8-16 8:9: 5  (小於10的沒有加  0,如需要,可以使用下面的方法加上就可以了)

//過濾加0
appendZero(obj) {
if (obj < 10) {
return "0" + obj;
} else {
return obj;
}
},

如果需要的話可以使用方法加上就可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM