使用moment.js显示本地时区名称

时间:2017-01-08 18:39:27

标签: javascript timezone momentjs

我正在使用 moment.js ,并希望使用

向用户的local timezone name显示CET或PST
var timezone_local = moment.tz().zoneName(); 
document.getElementById('timezone_local').innerHTML = timezone_local;

这些行不起作用。谢谢你的帮助!

5 个答案:

答案 0 :(得分:15)

根据官方时刻文件,您可以使用时刻时区

moment.tz.guess();

有关进一步格式化,请参阅this

编辑:

var zone_name =  moment.tz.guess();
var timezone = moment.tz(zone_name).zoneAbbr() 
console.log(timezone);

请参阅this working fiddle

答案 1 :(得分:1)

我正在这样做。格式中的z为时区添加适当的缩写。

 moment().tz('America/New_York').format('MMMM Do YYYY, h:mm a z');

答案 2 :(得分:0)

包括moment.js和moment-timezone-with-data.js javascript库。

<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.11/moment-timezone-with-data.js"></script>

然后使用以下代码获取浏览器时区名称。

<script>
var timezone = moment.tz.guess();
console.log(timezone);
</script>

在浏览器控制台中查看时区名称。

答案 3 :(得分:0)

var timeZone = moment.tz.guess();
const zoneName = moment.tz(timeZone).zoneName();
return moment().tz("America/New_York").zoneName();

答案 4 :(得分:0)

.format("z") 带有小写的 z 仅打印出时区缩写。

这里有几个例子:

let currentTime = moment().tz(moment.tz.guess());
console.log(currentTime.format("z")); // PST

let parisTime = moment().tz("Europe/Paris");
console.log(parisTime.format("z")); // CET

let indiaTime = moment().tz("Asia/Kolkata");
console.log(indiaTime.format("z")); // IST

let newYorkTime = moment().tz("America/New_York");
console.log(newYorkTime.format("z")); // EST

let newYorkTimeDuringDST = moment("2020-08-01").tz("America/New_York");
console.log(newYorkTimeDuringDST.format("z")); // EDT