Skip to content

日期格式兼容

  • 封装常用的日期格式化方法
  • 解决不同设备的兼容问题

useDate

使用dayjs的实例 官网

Parameters:

  • date: - 日期,兼容了Date对象,时间戳,字符串,dayjs实例
  • fmt: -格式 YYYY-MM-DD HH:mm:ss

Examples:

ts
//默认当前时间,返回dayjs()实例,可以format,diff,subtract等方法
  useDate().format('YYYY-MM-DD HH:mm:ss')
 //指定时间戳
  useDate(1709286300000).format('YYYY-MM-DD HH:mm:ss')
  useDate(2024-03-02 00:00).minute()
  useDate(new Date(2024, 2, 1)).add(7, 'day')

dateFormat

给定日期转成特点格式字符串

Parameters:

  • date: - 日期
  • fmt: -格式 YYYY-MM-DD HH:mm:ss

Examples:

ts
  dateFormat(1709286300000,'YYYY-MM-DD')
  dateFormat(2024-03-02 00:00,'YYYY-MM-DD')
  dateFormat(new Date(2024, 2, 1),'YYYY-MM-DD HH:mm')

minute

返回当前时间,默认到分钟的格式

Parameters:

  • date: - 日期
  • fmt: - 默认格式 YYYY-MM-DD HH:mm

Examples:

ts
  minute(1709286300000)
  minute(2024-03-02 00:00)
  minute(new Date(2024, 2, 1))

dateMonthDays

返回日期对应月份天数

Parameters:

  • date: - 日期

Examples:

ts
// 3月份天数
let days = dateMonthDays('2024-03-02')

getCurrDate

返回前后i天的日期字符串

Parameters:

  • i: - 0返回今天的日期、1返回明天的日期,2返回后天得日期,依次类推
  • format: - 日期格式 默认:YYYY-MM-DD

Examples:

ts
//今天的日期
getCurrDate()
// 明天的日期
let tomorrow = getCurrDate(1)

dateDiff

返回指定单位下两个日期时间之间的差异(date1 -date2)。

Parameters:

  • date1: -第一个时间
  • date2: -第二个时间,默认是今天

Examples:

ts
dateDiff(1709286300000)
dateDiff(1709286300000, 1709286400000)

durationFormat

根据传入的数值,返回格式化后的时间

Parameters:

  • duration: -传入的数值
  • config: - 可选的配置项(默认 unit='ms',format=''HH小时mm分钟')

Examples:

ts
const m = durationFormat(61, {
  unit: 'm',
})
const _date = durationFormat(61, {
  unit: 'm',
  format: 'HH:mm',
})
//format 也支持数组
const _dates = durationFormat(dateNum, {
  unit: 'm',
  format: ['HH', 'mm'],
})

durationFormatNoZero

根据传入的数值,返回格式化后的去掉0时间(区别durationFormat)

00天1小时3分钟 会被格式化为 1小时3分钟
1天1小时00分钟 会被格式化为 1天1小时

Parameters:

  • duration: -传入的数值
  • config: - 可选的配置项(默认 unit='ms',format=''D天H小时m分钟')

Examples:

ts
const m = durationFormatNoZero(10000)

//1小时1分钟
const _date = durationFormatNoZero(61, {
  unit: 'm',
})
// 10小时30分钟
const formatDate = durationFormatNoZero(10.5, {
  unit: 'h',
})

dateFromNow

根据指定日期距今天日期的时间差,展示不同格式。

  • 时间差小于1小时,展示为 X分钟前
  • 时间差-今天内,展示为 今天 HH:MM
  • 时间差-昨天的时间,展示为 昨天 HH:MM
  • 其他,展示为 YYYY/MM/DD

Parameters:

  • date: -指定日期
  • config: - 可选的配置项
    • minuteAgo: '${m}分钟前',
    • today: '今天 ${HH:mm}',
    • yesterday: '昨天 ${HH:mm}',
    • other: '${YYYY/MM/DD}',
    • future: '${YYYY/MM/DD}'

Examples:

ts
// 默认不需要带参数
dateFromNow('2024-03-02 00:00')
dateFromNow('2024-03-02 00:00', { minuteAgo: '${m} 分钟前' })
dateFromNow('2024-03-02 00:00', { other: '${YYYY - MM - DD}' })

Released under the MIT License.