Actualmente vivo en Europa y trabajo para un cliente estadounidense. Para resumir, me pidieron que creara un banner de cuenta regresiva para el próximo Día de la Madre, y tengo un pequeño problema al hacer que este banner de cuenta regresiva finalice sincrónico para las diferentes zonas horarias de los EE. UU.
const currentTime = new Date().getTime(); // Returning current time in miliseconds const endDate = new Date('May 3, 2022 23:59:59').getTime(); // This returns the endDate in milisecondsNo estoy seguro de cómo manejar la fecha de finalización para que devuelva la fecha de finalización correcta, ya sea que el usuario esté en Texas o El Paso o donde sea. La fecha de finalización siempre debe ser el 3 de mayo de 2022
¡Gracias!
Su temporizador ya debería ser consistente en todas las zonas horarias siempre que este código JavaScript sea del lado del cliente. Construyó su endDate con una dateString sin un desplazamiento de zona horaria, por lo que se interpreta como la hora local del usuario y luego se almacena como la cantidad de milisegundos entre el 1 de enero de 1970 00:00:00 UTC y su endDate . La currentDate también se almacena de la misma manera, por lo que la conversión de zona horaria ya se maneja. Puede probar esto en Chrome DevTools con la pestaña Sensores cambiando su ubicación y verificando que el temporizador de cuenta regresiva sea consistente, es decir, la diferencia en el temporizador de cuenta regresiva entre dos ubicaciones debe ser igual a la diferencia en sus compensaciones de zona horaria. Por ejemplo, Nueva York está 3 horas por delante de Los Ángeles, por lo que el temporizador de cuenta regresiva para Nueva York debe ser de -3 horas en comparación con el temporizador de Los Ángeles.