Here's the thing: I'm currently programming a "time availability" functionality.
Example: Sunday: 7:00 a.m. to 9:30 p.m. Monday: 8:00 a.m. to 10:00 p.m. Tuesday: 7:30 a.m. to 8:30 p.m. etc...
The idea is that a user can specify a time range in which a business is 'available' for the public. Specific day numbers are irrelevant - it does not matter if it is currently Monday the 3rd or Monday the 10th, the time range specified for 'Monday' applies to ALL Mondays. Beginning and ending times for each time range are saved as an hour field (1-12), a minute field (0-59) and a period (a.m. or p.m.) field. It is necessary for it to be this way, since this is specific to my country and here we use A.M./P.M., not the 24-hour clock. And of course, since we're talking about just hours and minutes, and not a SPECIFIC full date, we don't apply timezones in this case.
However, in some other place I need to have a JavaScript code that gets the current Date (specific full day and time), applies a specific timezone to said Date ("America/Panama", to be precise), and then separates that Date into its components (I need to have separate values for the day of the week, the day number, hour, minute and period (a.m. or p.m.), according to the timezone). This is in order to evaluate if the current Date, according to the day of the week, is in the specified time range (as explained in the last paragraph).
And yes, I know that Dates are something "universal" internally, and that timezones are supposedly just "something to apply in order to show a string to the user". Seen that before. But as you can see, here that isn't the case. Any ideas?
EDIT: Sorry, forgot to clarify: the solution has to be done without third-party scripts. That is, I need pure, "vanilla" JavaScript.