Comment puis-je obtenir le nom du fuseau horaire en JavaScript?
je sais comment obtenir le décalage du fuseau horaire, mais ce dont j'ai besoin c'est la capacité de détecter quelque chose comme "America/New York."Est-ce même possible à partir de JavaScript ou est-ce quelque chose que je vais devoir estimer sur la base de l'offset?
5 réponses
l'Internationalisation de l'API supporte l'obtention du fuseau horaire de l'utilisateur, et est prise en charge dans tous les navigateurs actuels.
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)
gardez à l'esprit que sur certaines versions de navigateur plus anciennes qui prennent en charge l'API D'internationalisation, le timeZone
propriété est définie à undefined
plutôt que la chaîne de fuseau horaire de l'utilisateur. Autant que je puisse le dire, au moment de la rédaction (juillet 2017)tous les navigateurs actuels sauf IE11 sera le retour de la le fuseau horaire de l'utilisateur comme une chaîne de caractères.
Vous pouvez utiliser ce script. http://pellepim.bitbucket.org/jstz/
dépôt fourche ou clone ici. https://bitbucket.org/pellepim/jstimezonedetect
une fois que vous avez inclus le script, vous pouvez obtenir la liste des timezones dans - jstz.olson.timezones
variable.
et le code suivant est utilisé pour déterminer le fuseau horaire du navigateur client.
var tz = jstz.determine();
tz.name();
Profitez de jstz!
Vous pouvez simplement écrire votre propre code en utilisant la table de correspondance ici: http://www.timeanddate.com/time/zones/
ou alors, utilisez moment-fuseau horaire de la bibliothèque: http://momentjs.com/timezone/docs/
Voir zone.name; // America/Los_Angeles
ou, cette bibliothèque: https://github.com/Canop/tzdetect.js
essayez ce code depuis ici
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js">
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.4/jstz.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
var tz = jstz.determine(); // Determines the time zone of the browser client
var timezone = tz.name(); //'Asia/Kolhata' for Indian Time.
alert(timezone);
});
</script>
en javascript, la Date.la méthode getTimezoneOffset () renvoie le décalage du fuseau horaire de UTC, en minutes, pour la locale courante.
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
Moment'timezone sera un outil utile. http://momentjs.com/timezone/
Convertissez Les Dates Entre Les Fuseaux Horaires
var newYork = moment.tz("2014-06-01 12:00", "America/New_York");
var losAngeles = newYork.clone().tz("America/Los_Angeles");
var london = newYork.clone().tz("Europe/London");
newYork.format(); // 2014-06-01T12:00:00-04:00
losAngeles.format(); // 2014-06-01T09:00:00-07:00
london.format(); // 2014-06-01T17:00:00+01:00