diff --git a/backend/workers/closeCheckins.js b/backend/workers/closeCheckins.js index 799dcd9ca..1a3941c4c 100644 --- a/backend/workers/closeCheckins.js +++ b/backend/workers/closeCheckins.js @@ -43,8 +43,11 @@ export default (cron, fetch) => { async function sortAndFilterEvents() { const events = await fetchEvents(); - const now = Date.now(); - + // Get current time and set to date variable + const now = new Date(); + const laNow = new Date(now.toLocaleString('en-US', { timeZone: 'America/Los_Angeles' })); + const laNowMs = laNow.getTime(); + // Filter events if event date is after now but before thirty minutes from now if (events && events.length > 0) { const sortedEvents = events.filter((event) => { if (!event.date) { @@ -52,7 +55,7 @@ export default (cron, fetch) => { } const threeHoursFromStartTime = new Date(event.date).getTime() + 10800000; if (Number.isNaN(threeHoursFromStartTime)) return false; - return now >= threeHoursFromStartTime && event.checkInReady === true; + return laNowMs >= threeHoursFromStartTime && event.checkInReady === true; }); return sortedEvents; diff --git a/backend/workers/openCheckins.js b/backend/workers/openCheckins.js index bea773244..180b0df4e 100644 --- a/backend/workers/openCheckins.js +++ b/backend/workers/openCheckins.js @@ -44,17 +44,26 @@ export default (cron, fetch) => { async function sortAndFilterEvents() { const events = await fetchEvents(); - const now = Date.now(); - const thirtyMinutesFromNow = now + 1800000; + // Get current time in LA and set to date variable + const now = new Date(); + const laNow = new Date(now.toLocaleString('en-US', { timeZone: 'America/Los_Angeles' })); + const laNowMs = laNow.getTime(); + // Calculate thirty minutes from now + const thirtyMinutesFromLaNow = laNowMs + 1800000; if (events && events.length > 0) { const sortedEvents = events.filter((event) => { if (!event.date) { + // handle if event date is null/undefined + // false meaning don't include in sortedEvents + console.log('Events exist but no date'); return false; } const startMs = new Date(event.date).getTime(); if (Number.isNaN(startMs)) return false; - return startMs >= now && startMs <= thirtyMinutesFromNow && event.checkInReady === false; + return ( + startMs >= laNowMs && startMs <= thirtyMinutesFromLaNow && event.checkInReady === false + ); }); return sortedEvents; }