Versie 0.2.0
This commit is contained in:
commit
e77d8fd373
495 files changed
+81026
No files matched your search
@@ -0,0 +1,77 @@
|
||||
// Generated, do not edit. sha256:ca177447c22d0d66351f016a9d6a55b9929893b9ec7e4207164d9f1592938144
|
||||
export const ZONE = 'Europe/Amsterdam';
|
||||
|
||||
function offsetMinutes(momentMs) {
|
||||
const fmt = new Intl.DateTimeFormat('en-US', {
|
||||
timeZone: ZONE, hour12: false,
|
||||
year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit',
|
||||
});
|
||||
const d = Object.fromEntries(fmt.formatToParts(new Date(momentMs))
|
||||
.filter(p => p.type !== 'literal').map(p => [p.type, p.value]));
|
||||
const uur = d.hour === '24' ? '00' : d.hour;
|
||||
return (Date.UTC(+d.year, +d.month - 1, +d.day, +uur, +d.minute, +d.second) - momentMs) / 60000;
|
||||
}
|
||||
|
||||
export function toUtcIso(text) {
|
||||
if (text === null || text === undefined || text === '') return text;
|
||||
if (/Z$/.test(text)) return text;
|
||||
if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(text)) return text;
|
||||
const alsofUtc = Date.parse(text + 'Z');
|
||||
if (Number.isNaN(alsofUtc)) throw new Error(`Onleesbaar tijdstempel: ${text}`);
|
||||
const schatting = alsofUtc - offsetMinutes(alsofUtc) * 60000;
|
||||
return new Date(alsofUtc - offsetMinutes(schatting) * 60000).toISOString().replace(/\.000Z$/, 'Z');
|
||||
}
|
||||
|
||||
export function toLocalIso(iso) {
|
||||
if (iso === null || iso === undefined || iso === '') return iso;
|
||||
const ms = Date.parse(iso);
|
||||
if (Number.isNaN(ms)) throw new Error(`Onleesbaar tijdstempel: ${iso}`);
|
||||
return new Date(ms + offsetMinutes(ms) * 60000).toISOString()
|
||||
.replace(/\.000Z$/, '').replace(/Z$/, '');
|
||||
}
|
||||
|
||||
export function localDate(iso) {
|
||||
const lokaal = toLocalIso(iso);
|
||||
return lokaal ? String(lokaal).slice(0, 10) : '';
|
||||
}
|
||||
|
||||
export function localDateNl(iso) {
|
||||
return dayNl(localDate(iso));
|
||||
}
|
||||
|
||||
let dateTag = 'nl-NL';
|
||||
let dateFmt = null;
|
||||
export function setDateLocale(tag) {
|
||||
if (tag !== dateTag) { dateTag = tag; dateFmt = null; }
|
||||
}
|
||||
|
||||
export function dayNl(day) {
|
||||
if (!day) return '';
|
||||
const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(String(day));
|
||||
if (!m) return String(day);
|
||||
dateFmt ??= new Intl.DateTimeFormat(dateTag, { day: '2-digit', month: '2-digit', year: 'numeric', timeZone: 'UTC' });
|
||||
return dateFmt.format(Date.UTC(+m[1], +m[2] - 1, +m[3]));
|
||||
}
|
||||
|
||||
export function localDateTimeNl(iso) {
|
||||
const lokaal = toLocalIso(iso);
|
||||
return lokaal ? `${dayNl(String(lokaal).slice(0, 10))} ${String(lokaal).slice(11, 16)}` : '';
|
||||
}
|
||||
|
||||
export function localTime(iso) {
|
||||
const lokaal = toLocalIso(iso);
|
||||
return lokaal ? String(lokaal).slice(11, 16) : '';
|
||||
}
|
||||
|
||||
export function localDateTime(iso) {
|
||||
const lokaal = toLocalIso(iso);
|
||||
return lokaal ? `${String(lokaal).slice(0, 10)} ${String(lokaal).slice(11, 16)}` : '';
|
||||
}
|
||||
|
||||
export function nowUtcIso() {
|
||||
return new Date().toISOString();
|
||||
}
|
||||
|
||||
export function nowLocalIso() {
|
||||
return toLocalIso(new Date().toISOString());
|
||||
}
|
||||
Reference in new issue
Block a user