db-vendo-client/format/time.js
2024-12-17 14:56:51 +00:00

43 lines
909 B
JavaScript

import {DateTime, IANAZone} from 'luxon';
import {luxonIANAZonesByProfile as timezones} from '../lib/luxon-timezones.js';
const getTimezone = (profile) => {
let timezone;
if (timezones.has(profile)) {
timezone = timezones.get(profile);
} else {
timezone = new IANAZone(profile.timezone);
timezones.set(profile, timezone);
}
return timezone;
};
const formatTime = (profile, when, includeOffset = false) => {
const timezone = getTimezone(profile);
return DateTime
.fromMillis(Number(when), {
locale: profile.locale,
zone: timezone,
})
.startOf('second')
.toISO({includeOffset: includeOffset, suppressMilliseconds: true});
};
const formatTimeOfDay = (profile, when) => {
const timezone = getTimezone(profile);
return DateTime
.fromMillis(Number(when), {
locale: profile.locale,
zone: timezone,
})
.toFormat('HH:mm');
};
export {
formatTime,
formatTimeOfDay,
};