Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
639 views
in Technique[技术] by (71.8m points)

javascript - Format datetime with moment.js to show timezone

I have problem showing timezone with moment.js.

I tried with this code:

var result = moment(someDate).format("MM/DD/YYYY HH:mm A Z");

and I get return, for example: 08/05/2015 06:18 PM +02:00, which is fine, but I want that my output be like 08/05/2015 06:18 PM WEDT or something like that, with abbreviations of timezones.

Tried using this code, but I get empty timezone on the end:

var result = moment(someDate).format("MM/DD/YYYY HH:mm A z"); 

or

var result = moment(someDate).format("MM/DD/YYYY HH:mm A zz");

UPDATE

So as @Matt Johnson suggested, I used this approach to show time zone using moment-timezone-with-data.js and tzdetect.js:

var tzName = tzdetect.matches()[0];
var result = moment.tz(myDate, tzName).format("MM/DD/YYYY h:mm A zz");
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

As described in the documentation:

Note: as of 1.6.0, the z/zz format tokens have been deprecated. Read more about it here.

The general problem is that time zone abbreviations are not available from the browser through a consistent API. In order to provide them, one has to have an external source of data.

You may want to look into using the moment-timezone addon. It provides time zone information, including abbreviations. You would have to know the specific time zone you are working with. For example:

moment.tz("2015-08-05T00:00:00+01:00", "Europe/London").format("MM/DD/YYYY hh:mm A z");
// "08/05/2015 12:00 AM BST"

Also, you shouldn't mix HH (hours of the 24-hour clock) with A (the 12-hour am/pm designator). Either use hh with A, or use HH without A.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...