27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
// 견적 등록 폼 공용 헬퍼 — datetime-local(KST) 변환과 퍼센트 파싱. QuotationCreateModal 에서 분리.
|
|
|
|
// datetime-local 값: 한국시간(Asia/Seoul)의 'YYYY-MM-DDTHH:mm'.
|
|
// sv-SE 로케일이 'YYYY-MM-DD HH:mm:ss' 를 주고, timeZone 명시로 브라우저 TZ 와 무관하게 KST 로 고정한다.
|
|
function toKstLocalInput(date: Date): string {
|
|
const s = date.toLocaleString('sv-SE', { timeZone: 'Asia/Seoul' });
|
|
return s.slice(0, 16).replace(' ', 'T');
|
|
}
|
|
|
|
export function nowKstLocalInput(): string {
|
|
return toKstLocalInput(new Date());
|
|
}
|
|
|
|
export function defaultDueDateLocalInput(): string {
|
|
return toKstLocalInput(new Date(Date.now() + 60 * 60 * 1000));
|
|
}
|
|
|
|
export function isFutureLocalInput(value: string): boolean {
|
|
const time = new Date(value).getTime();
|
|
return Number.isFinite(time) && time > Date.now();
|
|
}
|
|
|
|
export function parsePercent(value: string | undefined): number {
|
|
const n = Number(String(value ?? '').replace('%', '').trim());
|
|
return Number.isFinite(n) ? n / 100 : 0;
|
|
}
|