我们在开发前端项目时,经常需要对日期时间进行各种格式化显示,比如将其转换成前天、昨天、今天、明天、后天,其余日期转换成周几展示。具体源码如下:
函数:
getDayOrWeek(date) {
if (date == null) return ''
const dayArr = \['前天', '昨天', '今天', '明天', '后天'\]
// 星期数组
const weekArr = \['日', '一', '二', '三', '四', '五', '六'\]
// 获取传入日期与当前日期相差的天数,一天 86400000 毫秒
const diffTime = (date.setHours(0, 0, 0, 0) - new Date().setHours(0, 0, 0, 0)) / 86400000
`// 获取"前天/昨天/今天/明天/后天",若不在这些里面则显示星期
return dayArr[diffTime + 2] || ``周${weekArr[date.getDay()]}``
}`
使用:
console.log(getDayOrWeek(new Date('2023/1/29 9:20:20')))
console.log(getDayOrWeek(new Date('2023/01/29 09:20:20')))
console.log(getDayOrWeek(new Date('2023-1-29 9:20:20')))
console.log(getDayOrWeek(new Date('2023-01-29 09:20:20')))
console.log(getDayOrWeek(new Date(2023, 0, 29, 9, 20, 20)))