I need to check if the current time is between a representative's work hours (not with external library as momentJS).
What I have:
localTimeZone = 'America/New_York';
localWorkingHours = [
{day: 'Sunday', from: '08:00', to: '14:00'},
{day: 'Sunday', from: '23:00', to: '23:59'},
{day: 'Monday', from: '00:00', to: '07:00'},
{day: 'Tuesday', from: '08:00', to: '16:00'},
{day: 'Wednesday', from: '08:00', to: '16:00'}
];
const now = new Date();
const currentDayInWeek = now.toLocaleString("en-US", {
timeZone: localTimeZone,
weekday: 'long'
});
const workingTimes = localWorkingHours.filter(times => times.day === currentDayInWeek);
workingTimes.forEach((time) => {
// what is the best option to check that current time is between time.from and time.to ?
// note that this code should run in another AWS region.
})
I did this:
const now = new Date();
const currentDayInWeek = now.toLocaleString("en-US", {
timeZone: localTimeZone,
weekday: 'long'
});
const currentTime = new Intl.DateTimeFormat([], {
timeZone: localTimeZone,
hour12: false,
hour: '2-digit',
minute: '2-digit'
}).format(now);
const workingTimes = localWorkingHours.filter(times => times.day === currentDayInWeek);
return workingTimes.some((time) => {
if (currentTime >= time.from && currentTime <= time.to) return true;
});