db-vendo-client/parse/date-time.js

27 lines
586 B
JavaScript
Raw Normal View History

2024-12-07 16:16:31 +00:00
import {DateTime, IANAZone} from 'luxon';
import {luxonIANAZonesByProfile as timezones} from '../lib/luxon-timezones.js';
2017-11-11 22:35:41 +01:00
2024-12-07 16:16:31 +00:00
const parseDateTime = (ctx, date, time, timestamp = false) => {
const {profile} = ctx;
let timezone;
2024-12-07 16:16:31 +00:00
if (timezones.has(profile)) {
timezone = timezones.get(profile);
} else {
timezone = new IANAZone(profile.timezone);
timezones.set(profile, timezone);
2018-09-22 19:22:27 +02:00
}
2024-12-07 16:16:31 +00:00
let dt = DateTime.fromISO(time, {
locale: profile.locale,
zone: timezone,
});
return timestamp
? dt.toMillis()
: dt.toISO({suppressMilliseconds: true});
};
2017-11-11 22:35:41 +01:00
2022-05-07 16:17:37 +02:00
export {
parseDateTime,
};