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)
