Dopo aver guardato molto, inclusi i collegamenti da questa pagina, ho trovato questo fantastico articolo, usando il fuso orario moment:
https://www.webniraj.com/2016/11/23/javascript-using-moment-js-to-display-dates-times-in-users-timezone/
Per riassumere:
Ottieni il fuso orario dell'utente
var tz = moment.tz.guess();
console.info('Timezone: ' + tz);
Restituisce ad esempio: Fuso orario: Europa / Londra
Imposta il fuso orario dell'utente predefinito
moment.tz.setDefault(tz);
Imposta fuso orario personalizzato
moment.tz.setDefault('America/Los_Angeles');
Converti la data / ora nel fuso orario locale, presuppone che la data / ora originale sia in UTC
moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
Ritorni: dom, 25 dicembre 2016, 7:00
Convertire data / ora in ora di Los Angeles
moment.utc('2016-12-25 07:00').tz('America/Los_Angeles').format('ddd, Do MMMM YYYY, h:mma');
Ritorni: sabato 24 dicembre 2016, ore 23:00
Converti da Los Angeles a Londra
moment.tz('2016-12-25 07:00', 'America/Los_Angeles').tz('Europe/London').format( 'ddd, Do MMMM YYYY, h:mma' );
Ritorni: dom, 25 dicembre 2016, 15:00