fix: Maintenance dates display one day off due to timezone conversion (#237) #238
@@ -107,17 +107,17 @@ function parseServiceDate(value: string | number | null): string | undefined {
|
|||||||
// Try standard parsing
|
// Try standard parsing
|
||||||
const date = new Date(dateStr);
|
const date = new Date(dateStr);
|
||||||
if (!isNaN(date.getTime())) {
|
if (!isNaN(date.getTime())) {
|
||||||
return date.toISOString().split('T')[0];
|
const y = date.getFullYear();
|
||||||
|
const m = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
|
const d = String(date.getDate()).padStart(2, '0');
|
||||||
|
return `${y}-${m}-${d}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try MM/DD/YYYY format
|
// Try MM/DD/YYYY format
|
||||||
const mdyMatch = dateStr.match(/(\d{1,2})\/(\d{1,2})\/(\d{4})/);
|
const mdyMatch = dateStr.match(/(\d{1,2})\/(\d{1,2})\/(\d{4})/);
|
||||||
if (mdyMatch) {
|
if (mdyMatch) {
|
||||||
const [, month, day, year] = mdyMatch;
|
const [, month, day, year] = mdyMatch;
|
||||||
const parsed = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
|
||||||
if (!isNaN(parsed.getTime())) {
|
|
||||||
return parsed.toISOString().split('T')[0];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return undefined;
|
return undefined;
|
||||||
|
|||||||
Reference in New Issue
Block a user