2014-06-12 14 views
13

Saatin sonundaki saat dilimini görüntülemek için formatta z veya zz kullanmayı denedim ve kullanımdan kaldırıldığını gördüm. Z ve ZZ, -0700'ü göstermeye çalışır, ancak bunun yerine PDT'yi göstermesini istiyorum. Kullanıcıların yerel bölge kısaltmasını görüntülemek için Moment.js'yi kullanma

aldığım an-saat dilimi ve veri dosyası, ama böyle bir şey müşterinin yerel saat dilimini belirlemek için nasıl kullanılacağını anlamaya ve gösteremiyor:

2014-05-30T22: 56: 23,967 PDT

yerine

:

2014-05-30T22: 56: 23,967

o EST CST ... MST PST belirlemek için an-dilimini kullanmak mümkün mü?

+0

(çok az) [* dokümantasyon *] (http://momentjs.com/timezone/docs/) bir çıkış dizesi dilimini ayarlamak için kullanılıyor olmasıdır, biçimlendirme değil dize Benim anlayış , Örneğin 'M.tz ("Amerika/Toronto") biçiminde().; // "2013-11-18T11: 55: 00-05: 00". Saat dilimi ofsetine dayalı olarak bir zaman çizelgesi tahmin etme ve gün ışığından yararlanma olup olmadığını tahmin etmeye çalışan bir dizi [hizmet programı] (https://bitbucket.org/pellepim/jstimezonedetect) vardır. Ancak, [* IANA zaman dilimi değerleri *] (http://www.iana.org/time-zones) kullanılarak değil, EST gibi "medeni" (belirsiz) değerler ile çalışıyorlar. – RobG

cevap

24

an-diliminin 0.1.0 itibariyle, bir belirli saat diliminde kısaltmasını almak için formatting additions kullanabilirsiniz: sürüm 0.5.0 itibariyle

moment().tz("America/Los_Angeles").format('z'); // PST or PDT 

sen, şimdi guess the user's local time zone can hangi yukarıdaki tekniği ile kombine edildiğinde, aşağıdakileri yapmanız sağlar:

moment().tz(moment.tz.guess()).format('z'); 

tahminim doğruydu varsayarsak, bu ilişkili kısaltmayı gösterecektir.

+0

'z' ve 'zz' şimdi amortismana tabi tutuldu. Zaman dilimini – mperle

+0

@mperle biçiminde nasıl alabiliriz - Hala bunları kullanabilirsiniz, ancak sadece saat dilimi ile. –

0

Muhtemelen bu iyi bir yol değil, ancak yerel saat dilimi için projemde herhangi bir ek komut dosyası eklemek istemedim, bu nedenle bir an nesnesini araştırdım ve yerel saat dilimini aşağıdaki kodla aldım:

var test = momentUpdateDate._d.toString().substring(test.indexOf('(')+1, test.indexOf(')')); 
+1

'_d' kullanmamalı, daha çok' .toDate() 'kullanmamalısınız, ancak yine de" toString "uygulamasının çıktısı uygulamaya özel olduğundan ve belirli bir şekilde biçimlendirilmenin garanti edilmediği için bu önerilmez. Pratikte zaman dilimi verileri bazen kısaltılmış, bazen genişletilmiş, bazen yok olabilir. –

İlgili konular