一文詳細(xì)講下day.js的基礎(chǔ)用法(干貨滿(mǎn)滿(mǎn))
Day.js 是一個(gè)功能強(qiáng)大且易于使用的日期處理庫(kù),適合在項(xiàng)目中進(jìn)行日期和時(shí)間的操作。通過(guò)插件可以擴(kuò)展更多功能,滿(mǎn)足不同的需求。
1.安裝
npm install dayjs
2. 基礎(chǔ)日期解析和格式化
import dayjs from 'dayjs'
// 1. 創(chuàng)建日期對(duì)象
const now = dayjs() // 當(dāng)前時(shí)間
const date1 = dayjs('2024-03-14') // 從字符串創(chuàng)建
const date2 = dayjs('2024-03-14 10:30:00') // 帶時(shí)間的字符串
const date3 = dayjs(new Date()) // 從 Date 對(duì)象創(chuàng)建
const date4 = dayjs(1710400000000) // 從時(shí)間戳創(chuàng)建
// 2. 常用格式化
console.log(now.format('YYYY-MM-DD')) // 2024-03-14
console.log(now.format('YYYY年MM月DD日')) // 2024年03月14日
console.log(now.format('YYYY-MM-DD HH:mm:ss')) // 2024-03-14 10:30:00
console.log(now.format('dddd')) // 星期四
console.log(now.format('MM/DD/YYYY')) // 03/14/2024
console.log(now.format('HH:mm')) // 10:303.日期獲取和修改
// 1. 獲取日期部分
const date = dayjs('2024-03-14 10:30:00')
console.log(date.year()) // 2024
console.log(date.month()) // 2 (0-11)
console.log(date.date()) // 14
console.log(date.day()) // 4 (0-6, 0是星期天)
console.log(date.hour()) // 10
console.log(date.minute()) // 30
console.log(date.second()) // 0
// 2. 修改日期
const newDate = date
.year(2025) // 設(shè)置年份
.month(3) // 設(shè)置月份
.date(15) // 設(shè)置日期
.hour(14) // 設(shè)置小時(shí)
.minute(45) // 設(shè)置分鐘
.second(30) // 設(shè)置秒數(shù)
console.log(newDate.format('YYYY-MM-DD HH:mm:ss'))4.日期操作和計(jì)算
const date = dayjs('2024-03-14')
// 1. 增加時(shí)間
console.log(date.add(1, 'day').format('YYYY-MM-DD')) // 增加1天
console.log(date.add(1, 'week').format('YYYY-MM-DD')) // 增加1周
console.log(date.add(1, 'month').format('YYYY-MM-DD')) // 增加1月
console.log(date.add(1, 'year').format('YYYY-MM-DD')) // 增加1年
console.log(date.add(2, 'hours').format('HH:mm')) // 增加2小時(shí)
// 2. 減少時(shí)間
console.log(date.subtract(1, 'day').format('YYYY-MM-DD')) // 減少1天
console.log(date.subtract(1, 'month').format('YYYY-MM-DD')) // 減少1月
// 3. 開(kāi)始和結(jié)束時(shí)間
console.log(date.startOf('year').format('YYYY-MM-DD')) // 年初
console.log(date.startOf('month').format('YYYY-MM-DD')) // 月初
console.log(date.startOf('week').format('YYYY-MM-DD')) // 周初
console.log(date.startOf('day').format('HH:mm:ss')) // 天初
console.log(date.endOf('year').format('YYYY-MM-DD')) // 年末
console.log(date.endOf('month').format('YYYY-MM-DD')) // 月末5.日期比較
const date1 = dayjs('2024-03-14')
const date2 = dayjs('2024-03-15')
// 1. 基礎(chǔ)比較
console.log(date1.isBefore(date2)) // true
console.log(date1.isAfter(date2)) // false
console.log(date1.isSame(date2)) // false
// 2. 具體單位的比較
console.log(date1.isSame(date2, 'month')) // true (同月)
console.log(date1.isSame(date2, 'year')) // true (同年)
// 3. 比較大小
console.log(date1.diff(date2)) // 時(shí)間差(毫秒)
console.log(date1.diff(date2, 'day')) // 時(shí)間差(天)
console.log(date1.diff(date2, 'month')) // 時(shí)間差(月)6.實(shí)用插件功能
// 1. 相對(duì)時(shí)間插件
import relativeTime from 'dayjs/plugin/relativeTime'
import 'dayjs/locale/zh-cn'
dayjs.extend(relativeTime)
dayjs.locale('zh-cn')
console.log(dayjs().fromNow()) // 幾秒前
console.log(dayjs().from(dayjs('2024-01-01'))) // 2個(gè)月前
// 2. 是否相同或之前/之后插件
import isSameOrBefore from 'dayjs/plugin/isSameOrBefore'
import isSameOrAfter from 'dayjs/plugin/isSameOrAfter'
dayjs.extend(isSameOrBefore)
dayjs.extend(isSameOrAfter)
console.log(date1.isSameOrBefore(date2)) // true
console.log(date1.isSameOrAfter(date2)) // false
// 3. 周數(shù)插件
import weekOfYear from 'dayjs/plugin/weekOfYear'
dayjs.extend(weekOfYear)
console.log(dayjs().week()) // 獲取當(dāng)前是第幾周7.實(shí)際應(yīng)用示例
// 1. 格式化日期顯示
const formatDate = (date) => {
return dayjs(date).format('YYYY-MM-DD HH:mm:ss')
}
// 2. 計(jì)算剩余時(shí)間
const getRemainingTime = (endDate) => {
const end = dayjs(endDate)
const now = dayjs()
const days = end.diff(now, 'day')
const hours = end.diff(now, 'hour') % 24
const minutes = end.diff(now, 'minute') % 60
return `${days}天${hours}小時(shí)${minutes}分鐘`
}
// 3. 獲取日期范圍
const getDateRange = (start, end) => {
const dates = []
let current = dayjs(start)
while (current.isBefore(end) || current.isSame(end)) {
dates.push(current.format('YYYY-MM-DD'))
current = current.add(1, 'day')
}
return dates
}
// 4. 判斷是否是工作日
const isWorkday = (date) => {
const day = dayjs(date).day()
return day !== 0 && day !== 6
}
// 5. 獲取月份天數(shù)
const getDaysInMonth = (date) => {
return dayjs(date).daysInMonth()
}這些是 Day.js 最常用和最實(shí)用的功能。Day.js 的 API 設(shè)計(jì)簡(jiǎn)單直觀,鏈?zhǔn)秸{(diào)用使得代碼更加清晰。根據(jù)實(shí)際項(xiàng)目需求,你可以選擇性地使用這些功能。
總結(jié)
到此這篇關(guān)于day.js基礎(chǔ)用法的文章就介紹到這了,更多相關(guān)day.js基礎(chǔ)用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- moment.js輕松實(shí)現(xiàn)獲取當(dāng)前日期是當(dāng)年的第幾周
- Moment.js 不容錯(cuò)過(guò)的超棒Javascript日期處理類(lèi)庫(kù)
- moment.js 時(shí)間日期處理詳解
- moment.js使用方法總結(jié)(全網(wǎng)最全)
- moment.js使用超詳細(xì)教程
- Day.js常用方法集合(附各種事件格式的轉(zhuǎn)換)
- 基于Day.js更優(yōu)雅的處理JavaScript中的日期
- 一文秒懂js如何快速處理日期以及手寫(xiě)Day.js
- JavaScript中的Moment.js與Day.js時(shí)間處理庫(kù)用法詳解
相關(guān)文章
利用JavaScript為句子加標(biāo)題的3種方法示例
這篇文章主要給大家介紹了關(guān)于如何利用JavaScript為句子加標(biāo)題的3種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
ESC之ESC.wsf可以實(shí)現(xiàn)javascript的代碼壓縮附使用方法
可以對(duì)javascript的大小進(jìn)行壓縮。使javascript的加載速度變快。2007-05-05
JavaScript中的對(duì)象的extensible屬性介紹
這篇文章主要介紹了JavaScript中的對(duì)象的extensible屬性介紹,JavaScript中,對(duì)象的extensible屬性用于表示是否允許在對(duì)象中動(dòng)態(tài)添加新的property,需要的朋友可以參考下2014-12-12
javascript實(shí)現(xiàn)計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
用javascript實(shí)現(xiàn)的電信鐵通(網(wǎng)通)自動(dòng)跳轉(zhuǎn)源代碼
用javascript實(shí)現(xiàn)的電信鐵通(網(wǎng)通)自動(dòng)跳轉(zhuǎn)源代碼...2007-11-11
JS獲取當(dāng)前使用的瀏覽器名字以及版本號(hào)實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇JS獲取當(dāng)前使用的瀏覽器名字以及版本號(hào)實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
關(guān)于JAVASCRIPT urldecode URL解碼的問(wèn)題
JS要實(shí)現(xiàn)單純的編碼解碼輕而易舉,escape、unescape就搞定,但是遇到不是完整的URL轉(zhuǎn)碼,就沒(méi)辦法了2012-01-01
javascript+HTML5 Canvas繪制轉(zhuǎn)盤(pán)抽獎(jiǎng)
這篇文章主要為大家詳細(xì)介紹了javascrip+HTML5 Canvas繪制轉(zhuǎn)盤(pán)抽獎(jiǎng)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-04-04

