Display users local zone abbreviation

后端 未结 5 1924
耶瑟儿~
耶瑟儿~ 2020-12-17 10:17

I was trying to use z or zz in format to display the timezone at the end of the string and found that it\'s deprecated. Z and ZZ

相关标签:
5条回答
  • 2020-12-17 10:34

    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.

    0 讨论(0)
  • 2020-12-17 10:35

    Probably this is not a good way, but I did not want to add any additional scripts in my project for local time zone, so I investigated a moment object and I get the local time zone by the code I wrote below:

     var test = momentUpdateDate._d.toString().substring(test.indexOf('(')+1, test.indexOf(')'));
    
    0 讨论(0)
  • 2020-12-17 10:52

    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);
    
    0 讨论(0)
  • 2020-12-17 10:54

    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
    
    0 讨论(0)
  • 2020-12-17 11:00

    After searching a lot, this seems to work.

    const t = moment.tz.guess();
    timeZone = moment.tz(t).zoneAbbr();;
    
    0 讨论(0)
提交回复
热议问题