43 lines
981 B
JavaScript
43 lines
981 B
JavaScript
import { DateTime } from 'luxon'
|
|
|
|
export default class DateTimeWrapper {
|
|
constructor({ locale = 'en-GB', text, timeZone = 'utc' } = {}) {
|
|
if (!timeZone) {
|
|
timeZone = 'utc'
|
|
}
|
|
if (
|
|
timeZone.includes(':') &&
|
|
timeZone.substring(0, 3).toUpperCase() !== 'UTC'
|
|
) {
|
|
timeZone = 'UTC' + timeZone
|
|
}
|
|
this.dateTime = DateTime.fromISO(text, { locale, zone: timeZone })
|
|
}
|
|
|
|
getShortDate() {
|
|
return this.dateTime.toLocaleString(DateTime.DATE_SHORT)
|
|
}
|
|
|
|
getShortOffsetName() {
|
|
return this.dateTime.offsetNameShort
|
|
}
|
|
|
|
get24Time() {
|
|
return this.dateTime.toLocaleString(DateTime.TIME_24_SIMPLE)
|
|
}
|
|
|
|
equalsDate(other) {
|
|
return (
|
|
this.dateTime &&
|
|
other.dateTime &&
|
|
this.dateTime.day === other.dateTime.day &&
|
|
this.dateTime.month === other.dateTime.month &&
|
|
this.dateTime.year === other.dateTime.year
|
|
)
|
|
}
|
|
|
|
static getCurrentDatetimeAsString() {
|
|
return DateTime.now().toString()
|
|
}
|
|
}
|