| Numéro du ticket | Titre du ticket | |------------------|-----------------| | | | ## Description de la PR ## Modification du .env ## Check list - [x] Pas de régression - [x] TU/TI/TF rédigée - [x] TU/TI/TF OK - [x] CHANGELOG modifié Reviewed-on: #50 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import {isValidIso} from './dateFormat'
|
|
|
|
const DATETIME_RE = /^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})$/
|
|
|
|
export function isValidIsoDateTime(s: string): boolean {
|
|
const m = DATETIME_RE.exec(s)
|
|
if (!m) return false
|
|
const [, date, hh, mm, ss] = m
|
|
if (!isValidIso(date)) return false
|
|
const h = Number(hh)
|
|
const min = Number(mm)
|
|
const sec = Number(ss)
|
|
return h >= 0 && h <= 23 && min >= 0 && min <= 59 && sec >= 0 && sec <= 59
|
|
}
|
|
|
|
export function formatIsoDateTimeToDisplay(s: string | null): string {
|
|
if (!s || !isValidIsoDateTime(s)) return ''
|
|
const [date, time] = s.split('T')
|
|
const [y, mo, d] = date.split('-')
|
|
const [hh, mm] = time.split(':')
|
|
return `${d}/${mo}/${y} ${hh}:${mm}`
|
|
}
|
|
|
|
export function splitDateTime(s: string | null): {date: string | null; time: string} {
|
|
if (!s || !isValidIsoDateTime(s)) return {date: null, time: ''}
|
|
const [date, time] = s.split('T')
|
|
return {date, time: time.slice(0, 5)}
|
|
}
|
|
|
|
export function composeDateTime(date: string, time: string): string {
|
|
const t = time || '00:00'
|
|
return `${date}T${t}:00`
|
|
}
|