|
- import { format, } from 'date-fns'
-
- type DateLike = Date | string | number
-
- type MediumDateTime = (d: unknown) => string
-
- const mediumDateTime: MediumDateTime = dateRaw => {
- const date = dateRaw as DateLike
- let d: Date
- switch (typeof date!) {
- case 'string':
- d = new Date(date)
- break
- case 'number':
- if (isNaN(date as number)) {
- throw RangeError('Argument cannot be NaN.')
- }
- d = new Date(date)
- break
- case 'object':
- if (date! instanceof Date) {
- d = date
- break
- }
- throw RangeError('Invalid argument format.')
- default:
- throw TypeError('Invalid argument type.')
- }
- return format(d, 'yyyy-MM-dd HH:mm')
- }
-
- export default mediumDateTime
|