Actualmente estoy trabajando en un método en el que el sistema debe realizar una llamada automática al cliente en su zona horaria.
Digamos que si el cliente está en la zona horaria de "África/Blantyre" y yo estoy en la zona horaria de "Asia/Jakarta" y el cliente dice que llame a las 7 p. m., entonces necesitaría almacenar la hora en db y el sistema tiene que llamar a él.
El método que he pensado es obtener una compensación entre dos zonas horarias ("África/Blantyre" y "Asia/Yakarta") y luego obtener las 7 p. m. en "Asia/Yakarta", finalmente sumar/restar la compensación a la hora y eso es cómo obtendré la hora de las 7:00 p. m. para "África/Blantyre". Pero no estoy seguro de cómo puedo implementar esto.
Puedes:
Internamente, el objeto de momento utiliza una instancia del objeto Date incorporado, que tiene un valor de tiempo de ECMAScript que representa un único momento en el tiempo como un desplazamiento de la época de ECMAScript (1 de enero de 1970). Cambiar la zona horaria solo cambia los cálculos para manipular y mostrar la fecha, no cambia el valor de la hora.
Entonces, después de configurar la zona horaria en África/Blantyre, configurar la hora a las 19:00 lo establece para las 19:00 en Blantyre. Cambiar la zona horaria a Yakarta tampoco cambia el valor de tiempo subyacente, solo significa que la marca de tiempo generada es para Yakarta.
Así que aquí hay algo de código:
// First get a moment for "now" let mBlantyre = moment(); // Set the timezone to Africa/Blantyre mBlantyre.tz('Africa/Blantyre'); // Set the time to 7 pm mBlantyre.startOf('day').hour(19); // Copy the moment object mJakarta = moment(mBlantyre); // Set the timezone to Asia/Jakarta mJakarta.tz('Asia/Jakarta'); // Display as timestamps console.log( 'Africa/Blantyre: ' + mBlantyre.format() + '\nAsia/Jakarta : ' + mJakarta.format() ); <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.3/moment.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.34/moment-timezone-with-data-10-year-range.min.js"></script>Creo que puede obtener los datos de diferencia horaria a través de este sitio. En cuanto al método, puedes hacer un archivo json a través del cual agregas todos los países y su hora, o vía api, lo encontrarás a través de uno de los sitios para calcular las diferencias horarias y calcular la Zona Horaria