.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// dates.mjs
|
||||
export const z2 = n => String(n).padStart(2,'0');
|
||||
|
||||
export function toUTCms(isoDate, time) {
|
||||
const [Y,M,D] = isoDate.split('-').map(n=>parseInt(n,10));
|
||||
const [h,m,s] = time.split(':').map(n=>parseInt(n,10));
|
||||
return Date.UTC(Y, (M||1)-1, D||1, h||0, m||0, s||0);
|
||||
}
|
||||
|
||||
export function fmtHMSUTC(ms){
|
||||
const d = new Date(ms);
|
||||
const z = n => String(n).padStart(2,'0');
|
||||
return `${z(d.getUTCHours())}:${z(d.getUTCMinutes())}:${z(d.getUTCSeconds())}`;
|
||||
}
|
||||
|
||||
export const fmtHM = mins => {
|
||||
const h = Math.floor(mins/60); const m = Math.round(mins%60);
|
||||
return `${z2(h)}:${z2(m)}`;
|
||||
};
|
||||
|
||||
// "YY/MM/DD" o "YYYY/MM/DD" (o '-') -> "YYYY-MM-DD"
|
||||
export function normDateStr(s) {
|
||||
const m = String(s || '').trim().match(/^(\d{2,4})[\/\-](\d{1,2})[\/\-](\d{1,2})$/);
|
||||
if (!m) return null;
|
||||
let [_, y, mo, d] = m;
|
||||
let yy = parseInt(y, 10);
|
||||
if (y.length === 2) yy = 2000 + yy;
|
||||
const mm = parseInt(mo, 10), dd = parseInt(d, 10);
|
||||
if (!(mm >= 1 && mm <= 12 && dd >= 1 && dd <= 31)) return null;
|
||||
return `${yy}-${String(mm).padStart(2,'0')}-${String(dd).padStart(2,'0')}`;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// docs.mjs
|
||||
import { z2 } from './dates.mjs';
|
||||
|
||||
export const normDoc = s => {
|
||||
const v = String(s||'').replace(/\D/g,'').replace(/^0+/,'');
|
||||
return v || '0';
|
||||
};
|
||||
|
||||
export const cleanDoc = s => {
|
||||
const v = String(s||'').trim().replace(/^0+/, '');
|
||||
return v === '' ? '0' : v;
|
||||
};
|
||||
|
||||
// HH:MM o HH:MM:SS -> HH:MM:SS
|
||||
export const normTime = s => {
|
||||
if (!s) return '';
|
||||
const m = String(s).trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);
|
||||
if (!m) return '';
|
||||
return `${z2(+m[1])}:${z2(+m[2])}:${z2(+m[3]||0)}`;
|
||||
};
|
||||
Reference in New Issue
Block a user