Display users local zone abbreviation
From the latest moment timezone docs
moment.tz(String).format("Z z"); // -08:00 PST
moment.tz(String).zoneAbbr(); // PST
moment.tz(String).zoneName(); // PST
Some examples:
moment.tz(moment.tz.guess()).zoneAbbr(); // PST
moment.tz("America/New_York").zoneAbbr(); // EST
As of moment-timezone 0.1.0, you can use the formatting additions to get the abbreviation of a specific time zone:
moment().tz("America/Los_Angeles").format('z'); // PST or PDT
As of version 0.5.0, you can now guess the user's local time zone, which when combined with the above technique, allows you to do the following:
moment().tz(moment.tz.guess()).format('z');
Assuming the guess was correct, it will display the associated abbreviation.
2020 Update
Some time in the past 5 years, this stopped working. Now try:
var timeZone = moment.tz.guess();
var time = new Date();
var timeZoneOffset = time.getTimezoneOffset();
moment.tz.zone(timeZone).abbr(timeZoneOffset);
After searching a lot, this seems to work.
const t = moment.tz.guess();
timeZone = moment.tz(t).zoneAbbr();;