Après avoir parcouru beaucoup de choses, y compris les liens de cette page, j'ai trouvé cet excellent article, en utilisant le fuseau horaire du moment:
https://www.webniraj.com/2016/11/23/javascript-using-moment-js-to-display-dates-times-in-users-timezone/
Pour le résumer:
Obtenez le fuseau horaire de l'utilisateur
var tz = moment.tz.guess();
console.info('Timezone: ' + tz);
Retours par exemple: Fuseau horaire: Europe / Londres
Définir le fuseau horaire utilisateur par défaut
moment.tz.setDefault(tz);
Définir un fuseau horaire personnalisé
moment.tz.setDefault('America/Los_Angeles');
Convertir la date / l'heure en fuseau horaire local, en supposant que la date / heure d'origine est en UTC
moment.utc('2016-12-25 07:00').tz(tz).format('ddd, Do MMMM YYYY, h:mma');
Retours: dimanche 25 décembre 2016, 7h00
Convertir la date / l'heure en heure de Los Angeles
moment.utc('2016-12-25 07:00').tz('America/Los_Angeles').format('ddd, Do MMMM YYYY, h:mma');
Retours: samedi 24 décembre 2016, 23h00
Convertir de Los Angeles à Londres
moment.tz('2016-12-25 07:00', 'America/Los_Angeles').tz('Europe/London').format( 'ddd, Do MMMM YYYY, h:mma' );
Retour: dimanche 25 décembre 2016, 15h00