RuralDatabase/apps/web/utils/format.ts

48 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-06-30 21:39:37 +08:00
import { format as datefns, formatDistanceToNow } from 'date-fns'
import zhLocale from 'date-fns/locale/zh-CN'
// ----------------------------------------------------------------------
const option = { locale: zhLocale }
function fDate(date?: string | number | Date, float = 1000) {
if (!date)
return ''
return datefns(new Date(Number(date) * float), 'dd MMMM yyyy', option)
}
function fDateTime(date?: string | number, float = 1000) {
if (!date)
return ''
return datefns(new Date(Number(date) * float), 'yyyy/MM/dd HH:mm', option)
}
function fDateTimes(date?: string | number | Date) {
if (!date)
return ''
return datefns(new Date(date), 'yyyy/MM/dd HH:mm:ss', option)
}
function fDateTimeSuffix(date?: string | number | Date) {
if (!date)
return ''
return datefns(new Date(date), 'dd/MM/yyyy hh:mm p', option)
}
function fToNow(date?: string | number | Date) {
if (!date)
return ''
return formatDistanceToNow(new Date(date), {
addSuffix: true,
...option,
})
}
export const format = {
date: fDate,
dateTime: fDateTime,
dateTimeS: fDateTimes,
dateTimeSuffix: fDateTimeSuffix,
toNow: fToNow,
}