美文网首页
moment.js与dayjs安装与使用

moment.js与dayjs安装与使用

作者: 小飞牛牛 | 来源:发表于2022-05-30 11:17 被阅读0次

Moment

安装moment

npm install moment --save

moment 可以在浏览器和Nodejs环境中引入。以浏览器为例

import * as moment from 'moment'
console.log(new Moment())

Moment对象长这样子。


image.png

它并不会自行转换成时间字符串。
用format方法尝试 转换,它是一个标明了时区的绝对时间

console.log(new Moment().format())
// 2022-05-30T09:18:29+08:00

语言的引入
经测试,并没有得到想要的结果。

import * as moment from 'moment'
import 'moment/locale/pt-br'
moment.locale('pt-BR')
console.log(moment.locale())

新建对象的形式

// 字符串形式
console.log(moment())
console.log(moment('1995-12-25'))
console.log(moment('12-25-1995', 'MM-DD-YYYY', 'zh-cn')) // 字符串对应的格式,用于输入
console.log(moment('It is 2012-05-25', 'YYYY-MM-DD').isValid()) // 验证时间格式的正确性
// 多种格式匹配
console.log(moment('29-06-1995', ['MM-DD-YYYY', 'DD-MM', 'DD-MM-YYYY'])) // 使用最后一种格式。
console.log(moment('05-06-1995', ['MM-DD-YYYY', 'DD-MM-YYYY'])) // 使用第一种格式

// 对象形式
console.log(moment({ hour: 15, minute: 10 }))

// 时间戳形式
console.log(moment(new Date().getTime()))

// Date对象
console.log(moment(new Date()))

// 数组形式
console.log(moment([2010, 1, 14, 15, 25, 50, 125]))

// 使用对象克隆
console.log(moment(moment([2012])))
console.log(moment().clone())

赋值或者取值。赋值传值,取值不传

// 赋值和取值
console.log(moment().second(10).minute(20).hour(15).date(14))
console.log(moment().date())
// 使用get方法
console.log(moment().get('year'))
console.log(moment().get('month'))
console.log(moment().get('date'))
console.log(moment().get('hour'))
console.log(moment().get('minute'))

求一组时间的最大值和最小值

console.log(moment.max(moment('2022-5-18'), moment('2022-5-12'), moment('2022-5-2')))
console.log(moment.min(moment('2022-5-18'), moment('2022-5-12'), moment('2022-5-2')))

增加、减少相对时间,比如增加7天

console.log(moment().add(7, 'days'))
console.log(moment().subtract(7, 'days'))

格式化

console.log(moment().month(11).format('YYYY M D'))
console.log(moment().subtract(3, 'days').from(moment()))
console.log(
  moment().calendar(null, {
    sameDay: '[今天]'
  })
)

其它方法

// 格式转换
console.log(moment().toArray())
console.log(moment().toObject())
console.log(moment().toString())

// 比较
console.log(moment('2010-10-20').isAfter('2010-10-19'))
console.log(moment('2010-10-20').isBefore('2010-10-21'))
console.log(moment('2010-10-20').isSame('2009-12-31', 'year'))
console.log(moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'))

这里只是很小一部分方法,其余看官网
http://momentjs.cn/docs/

dayjs

Day.js被设计用于在浏览器和Node.js中工作。
安装

npm install dayjs --save

以浏览器为例,引入

import * as dayjs from 'dayjs'
console.log(dayjs())

dayjs对象


image.png

国际化, dayjs的国际化设置没有问题。

import * as dayjs from 'dayjs'
import 'dayjs/locale/zh-cn'
dayjs.locale('zh-cn')
console.log(dayjs('12-25-1995', 'MM-DD-YYYY').format('dddd'))

dayjs与moment大同小异。不同的是dayjs实现某些功能需要另外引入插件,dayjs本身提供一个较小的包。
引入插件

import * as isLeapYear from 'dayjs/plugin/weekOfYear' 
dayjs.extend(weekOfYear)
dayjs('2018-06-27').week() // 26
dayjs('2018-06-27').week(5) // set week

大概看看dayjs的一些方法,基本上与moment的方法名是一致的

dayjs.extend(minMax)
console.log(dayjs('12-25-1995', 'MM-DD-YYYY'))
console.log(dayjs('12-25-2001', ['YYYY', 'YYYY-MM-DD'], 'es', true))
// 克隆
console.log(dayjs().clone())
console.log(dayjs().isValid())
// 赋值和取值
console.log(dayjs().second(30).valueOf())
console.log(dayjs().second())
console.log(dayjs().get('year'))
// 最大最小值
console.log(dayjs.max(dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01')))
console.log(dayjs.min([dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01')]))
// 加减
console.log(dayjs().add(7, 'day'))
console.log(dayjs().subtract(7, 'year'))
// 格式化
console.log(dayjs('2019-01-25').format('DD/MM/YYYY'))
// 转换
dayjs.extend(toObject)
console.log(dayjs('2019-01-25').toObject())
dayjs.extend(toArray)
console.log(dayjs('2019-01-25').toArray())
// 比较
console.log(dayjs().isBefore(dayjs('2011-01-01')))
console.log(dayjs().isSame(dayjs('2011-01-01')))

相关文章

网友评论

      本文标题:moment.js与dayjs安装与使用

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