Si se necesita obtener la zona horaria del usuario, con ese trozo trozo de código en Javascript, se puede obtener un array con los nombres de la zona horaria (TimeZone). Con esta función no se puede determinar la zona horaria en exactitud, pero si obtener un listado de los nombres (timezone names) que coinciden con el huso horario de la fecha actual del usuario.
Dependencias
Librería moments.js + moment-timezone-with-data-2010-2020.jsFunción tzdetect()
var tzdetect = { names: moment.tz.names(), matches: function(base){ var results = [], now = Date.now(), makekey = function(id){ return [0, 4, 8, -5*12, 4-5*12, 8-5*12, 4-2*12, 8-2*12].map(function(months){ var m = moment(now + months*30*24*60*60*1000); if (id) m.tz(id); // Compare using day of month, hour and minute (some timezones differ by 30 minutes) return m.format("DDHHmm"); }).join(' '); }, lockey = makekey(base); tzdetect.names.forEach(function(id){ if (makekey(id)===lockey) results.push(id); }); return results; } };
Usar la función tzdetect()
Para obtener el listado de las zonas horarias solo debemos llamar la función tzdetect()
var namesTimeZones = tzdetect.matches();
Con la fecha establecida en Madrid se obtiene un array con 37 nombres de zona horaria que comparten el mismo Huso horario es decir el mismo desplazamiento UTC.
0: "Africa/Ceuta"
1: "Arctic/Longyearbyen"
2: "Atlantic/Jan_Mayen"
3: "CET"
4: "Europe/Amsterdam"
5: "Europe/Andorra"
6: "Europe/Belgrade"
7: "Europe/Berlin"
8: "Europe/Bratislava"
9: "Europe/Brussels"
10: "Europe/Budapest"
11: "Europe/Busingen"
12: "Europe/Copenhagen"
13: "Europe/Gibraltar"
14: "Europe/Ljubljana"
15: "Europe/Luxembourg"
16: "Europe/Madrid"
17: "Europe/Malta"
18: "Europe/Monaco"
19: "Europe/Oslo"
20: "Europe/Paris"
...
0 comentarios:
Publicar un comentario