添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
vue项目中获取前后N天日期(dayjs/moment.js/原生js)

vue项目中获取前后N天日期(dayjs/moment.js/原生js)

1、dayjs 实现

中文官网

安装&引入

npm install dayjs --save
var dayjs = require('dayjs')
//import dayjs from 'dayjs' // ES 2015

获取今天日期

let td = dayjs().format('YYYY-MM-DD HH:mm:ss')
console.log(td) // 2022-03-03 17:07:11

获取过去/未来N天的日期

// 过去
// let atd = dayjs().add(-1, 'day').format('YYYY-MM-DD HH:mm:ss')
let atd = dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss')
console.log(atd) // 2022-03-02 17:10:32
// 未来
let btd = dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss')
console.log(btd) // 2022-03-04 17:10:32

另外dayjs 与 moment.js 体验基本一致吧。好用就好。

这当然是moment官网,中文网是不会说的


2、moment.js 实现

中文官网

安装&引入

npm install moment
// import moment from 'moment'
let moment = require('moment');

获取今天日期

let td = moment().format('YYYY-MM-DD')
console.log(td) // 2020-11-10

获取过去/未来N天的日期

// 过去
// let btd = moment().add(-2, 'days').format('YYYY-MM-DD')
let btd = moment().subtract(3, 'days').format('YYYY-MM-DD')
console.log(btd) // 2020-11-07
// 未来
let atd = moment().add(2, 'days').format('YYYY-MM-DD')
console.log(atd) // 2020-11-12

PS:如果是在andv中使用 a-date-picker 注意不要在@change事件中直接修改date,可使用dateString

<a-date-picker @change="onTimeChange" />
methods: 
onTimeChange (date, dateString) {
  // 这里直接使用date会修改日期面板中的时间,可使用moment(dateString) 变相解决

3、原生JS实现

 <script>
    let a = getFMdate(0)
    let b = getFMdate(-1)
    let c = getFMdate(8)
    console.log(a, b, c)
    function getFMdate (number, separator) {
      let n = parseInt(number)
      let nd = new Date()
      let day = nd.getDate()
      let setd = new Date(nd.setDate(day + n))
      let ryear = setd.getFullYear()
      let rmonth = setd.getMonth() + 1
      let rday = setd.getDate()
      let frmonth, frday;
      // month day + '0'
      if (rmonth < 10) {
        frmonth = '0' + rmonth
      } else {
        frmonth = rmonth
      if (rday < 10) {
        frday = '0' + rday
      } else {
        frday = rday