v0.11.3 fixed timezone issue

This commit is contained in:
2026-03-21 00:23:29 -04:00
parent 01a9b97f0d
commit 596fd0f969
6 changed files with 83 additions and 24 deletions

View File

@@ -16,13 +16,33 @@ function fmtTime(isoStr) {
return d.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
}
function fmtTimeRange(start, end) { return `${fmtTime(start)} ${fmtTime(end)}`; }
function toLocalDateInput(isoStr) { return isoStr ? isoStr.slice(0,10) : ''; }
function toLocalTimeInput(isoStr) { return isoStr ? isoStr.slice(11,16) : ''; }
function buildISO(date, time) { return date && time ? `${date}T${time}:00` : ''; }
function toLocalDateInput(isoStr) {
if (!isoStr) return '';
const d = new Date(isoStr);
const pad = n => String(n).padStart(2,'0');
return `${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())}`;
}
function toLocalTimeInput(isoStr) {
if (!isoStr) return '';
const d = new Date(isoStr);
const pad = n => String(n).padStart(2,'0');
return `${pad(d.getHours())}:${pad(d.getMinutes())}`;
}
function buildISO(date, time) {
if (!date || !time) return '';
const d = new Date(`${date}T${time}:00`);
const pad = n => String(n).padStart(2,'0');
const off = -d.getTimezoneOffset();
const sign = off >= 0 ? '+' : '-';
const abs = Math.abs(off);
return `${date}T${time}:00${sign}${pad(Math.floor(abs/60))}:${pad(abs%60)}`;
}
function addHours(isoStr, hrs) {
const d = new Date(isoStr);
d.setMinutes(d.getMinutes() + hrs * 60);
return d.toISOString().slice(0,19);
const pad = n => String(n).padStart(2,'0');
// Return local datetime string — do NOT use toISOString() which shifts to UTC
return `${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}:00`;
}
function sameDay(a, b) {
return a.getFullYear()===b.getFullYear() && a.getMonth()===b.getMonth() && a.getDate()===b.getDate();
@@ -174,8 +194,8 @@ function EventForm({ event, userGroups, eventTypes, selectedDate, onSave, onCanc
try {
const body = {
title: title.trim(), eventTypeId: eventTypeId || null,
startAt: allDay ? `${startDate}T00:00:00` : buildISO(startDate, startTime),
endAt: allDay ? `${endDate}T23:59:59` : buildISO(endDate, endTime),
startAt: allDay ? buildISO(startDate, '00:00') : buildISO(startDate, startTime),
endAt: allDay ? buildISO(endDate, '23:59') : buildISO(endDate, endTime),
allDay, location, description, isPublic, trackAvailability: trackAvail,
userGroupIds: [...selectedGroups],
};