moment.js与dayjs安装与使用
2022-05-30 本文已影响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')))