js中引用dayjs处理字符串与时间转换及时间比较
在js中时间处理问题一直是我比较棘手的问题,现在终于找到一个比较完美的处理方式
以下解决方式需要引入dayjs
<script src="./dayjs.js"></script>
<script type="text/javascript">
function format(){
//字符串转日期
var date = dayjs('2021-01-01').toDate()
date = dayjs('2021-1-1').toDate()
date = dayjs('2021/01/01').toDate()
date = dayjs('2021/1/1').toDate()
date = dayjs('20210101').toDate()
date = dayjs('2021011').toDate()
//字符串转时间
var time = dayjs('2021-01-01 01:10:11').toDate()
time = dayjs('2021-01-0101:10:11').toDate()
time = dayjs('2021-01-01 011011').toDate()
time = dayjs('2021-01-01011011').toDate()
//时间转字符串
var curTime = dayjs(timestr) //获取需要转换时间传空为当前时间
curTime.format() // '2021-01-01T01:10:11+08:00'
curTime.format('YYYY-MM-DD HH:mm:ss') //'2021-01-01 10:10:01'
curTime.format('YYYY年MM月DD日 HH时mm分ss秒') //'2021年01月01日 10时10分01秒'
//时间比较
var a = dayjs('2021-01-01 01:10:11')
var b = dayjs('2021-02-10 01:20:31')
b.diff(a) // 3456620000 相差毫秒数
b.diff(a,'y')
b.diff(a,'year') // 0 差值转为年
b.diff(a,'M')
b.diff(a,'Month') // 1
b.diff(a,'d')
b.diff(a,'day') // 40
b.diff(a,'h')
b.diff(a,'hour') // 960
b.diff(a,'m')
b.diff(a,'minute') // 57610
b.diff(a,'s')
b.diff(a,'second') // 3456620
//时间增加
var date = dayjs('2021-01-01 10:10:10')
date.add(1,'hour') //2021-01-01 11:10:10
date.add(1,'minute') //2021-01-01 10:11:10
date.add(1,'second') //2021-01-01 10:10:11
date.add(1,'day') //2021-01-02 10:10:10
date.add(1,'week') //2021-01-08 10:10:10
date.add(1,'month') //2021-02-01 10:10:10
date.add(1,'year') //2022-01-01 10:10:10
//时间减少
var date = dayjs('2021-01-01 10:10:10')
date.subtract(1, 'year') //2020-01-01 10:10:10
...
//获取时间的开始
var date = dayjs('2021-10-15 10:10:10')
date.startOf('hour') //2021-10-15 10:00:00
date.startOf('minute') //2021-10-15 10:10:00
date.startOf('second') //2021-10-15 10:10:10
date.startOf('day') //2021-10-15 00:00:00
date.startOf('week') //2021-10-10 00:00:00
date.startOf('month') //2021-10-01 00:00:00
date.startOf('year') //2021-01-01 00:00:00
//获取时间的结束
var date = dayjs('2021-10-15 10:10:10')
date.endOf('hour') //2021-10-15 10:59:59
date.endOf('minute') //2021-10-15 10:10:59
date.endOf('second') //2021-10-15 10:10:10
date.endOf('day') //2021-10-15 23:59:59
date.endOf('week') //2021-10-16 23:59:59
date.endOf('month') //2021-10-31 23:59:59
date.endOf('year') //2021-12-31 23:59:59
}
</script>
以上是比较常用的一些用法,更多用法可以访问 Day.js中文网 (fenxianglu.cn)