fix: varTurn60에 밀리초 없음

This commit is contained in:
2025-10-29 17:44:12 +00:00
parent b7c7d6ffce
commit 7801e5fd81
2 changed files with 12 additions and 14 deletions
+7 -1
View File
@@ -1,5 +1,11 @@
import {parseISO} from 'date-fns'; import {parseISO} from 'date-fns';
export function parseTime(dateString: string): Date{ export function parseTime(dateString: string): Date{
return parseISO(dateString); if(dateString === null){
console.warn('why null');
console.trace();
return new Date();
}
const tmp = parseISO(dateString);
return tmp;
} }
+5 -13
View File
@@ -167,14 +167,6 @@ export class VarTurn60 {
return formatTime(zoned, withFraction); return formatTime(zoned, withFraction);
} }
private static addSecondsUTC(base: Date, sec: number): Date {
return addSeconds(base, sec);
}
private static addDaysUTC(base: Date, days: number): Date {
return addDays(base, days);
}
// ----- Core Logic ----- // ----- Core Logic -----
@@ -183,7 +175,7 @@ export class VarTurn60 {
const baseDayUTC = this.toSeoulMidnightUTC(utc); const baseDayUTC = this.toSeoulMidnightUTC(utc);
const zoned = toZonedTime(utc, this.TZ); const zoned = toZonedTime(utc, this.TZ);
const totalSec = zoned.getHours() * 3600 + zoned.getMinutes() * 60 + zoned.getSeconds(); const totalSec = zoned.getHours() * 3600 + zoned.getMinutes() * 60 + zoned.getSeconds() + zoned.getMilliseconds() / 1000;
const min30 = Math.floor(totalSec / 1800); const min30 = Math.floor(totalSec / 1800);
if (min30 < 0 || min30 >= 48) throw new RangeError('half-hour index out of range'); if (min30 < 0 || min30 >= 48) throw new RangeError('half-hour index out of range');
const [turnIdx, minOffset] = this.min30ToTurn[min30]; const [turnIdx, minOffset] = this.min30ToTurn[min30];
@@ -202,21 +194,21 @@ export class VarTurn60 {
cutTurn(withFraction = true): [string, number] { cutTurn(withFraction = true): [string, number] {
const [hour, minOffset, turnTerm] = VarTurn60.turnToHM[this.turnIdx]; const [hour, minOffset, turnTerm] = VarTurn60.turnToHM[this.turnIdx];
const sec = (hour * 60 + minOffset) * 60; const sec = (hour * 60 + minOffset) * 60;
const date = VarTurn60.addSecondsUTC(this.baseDayUTC, sec); const date = addSeconds(this.baseDayUTC, sec);
return [VarTurn60.format(date, withFraction), turnTerm]; return [VarTurn60.format(date, withFraction), turnTerm];
} }
toDate(): Date { toDate(): Date {
const [hour, minOffset] = VarTurn60.turnToHM[this.turnIdx]; const [hour, minOffset] = VarTurn60.turnToHM[this.turnIdx];
const sec = (hour * 60 + minOffset) * 60 + this.secOffset; const sec = (hour * 60 + minOffset) * 60 + this.secOffset;
const date = toZonedTime(VarTurn60.addSecondsUTC(this.baseDayUTC, sec), SEOUL_TZ); const date = toZonedTime(addSeconds(this.baseDayUTC, sec), SEOUL_TZ);
return date; return date;
} }
toDateStr(withFraction = true): string { toDateStr(withFraction = true): string {
const [hour, minOffset] = VarTurn60.turnToHM[this.turnIdx]; const [hour, minOffset] = VarTurn60.turnToHM[this.turnIdx];
const sec = (hour * 60 + minOffset) * 60 + this.secOffset; const sec = (hour * 60 + minOffset) * 60 + this.secOffset;
const date = VarTurn60.addSecondsUTC(this.baseDayUTC, sec); const date = addSeconds(this.baseDayUTC, sec);
return VarTurn60.format(date, withFraction); return VarTurn60.format(date, withFraction);
} }
@@ -253,7 +245,7 @@ export class VarTurn60 {
} }
const nextBaseDayUTC = const nextBaseDayUTC =
dayDiff === 0 ? this.baseDayUTC : VarTurn60.addDaysUTC(this.baseDayUTC, dayDiff); dayDiff === 0 ? this.baseDayUTC : addDays(this.baseDayUTC, dayDiff);
return new VarTurn60(nextBaseDayUTC, nextTurnIdx, nextSecOffset); return new VarTurn60(nextBaseDayUTC, nextTurnIdx, nextSecOffset);
} }