2013-08-02 34 views
7

Başlık sorarken, tüm tarayıcılarda her zaman aynı biçimde Date.toString() (daha doğrusu, Date.toTimeString()) çıktısı çıktı mı?Date.toString() çıkışı her zaman aynı biçimde mi?

Bunu, EMCAScript specification "String'in içeriği uygulamaya bağlı" olduğu için bu yana soruyorum.

(new Date()).toTimeString().replace(" GMT", "<span id='offset'> GMT") + '</span>');

Bu üretecektir (Google Chrome v28.0.1500.95 içinde şu şekildedir: Ben HTML span elementleri ekleyerek dizeyi biçimlendirmek gerekir çünkü


ben bu emin olmalısınız

18:19:26<span id="offset"> GMT-0700 (Pacific Daylight Time)</span>

gibi) bir şey ki CSS ile daha sonra olabilir tarzı. Ayrıca çok iyi olurdu çıktı stil için daha iyi yollar


Öneriler!

+2

Zaten bir cevabınız var! Bahsettiğiniz gibi * uygulamaya bağlı *. Bu yüzden, mevcut uygulamanın sonucuna göre kod yazmamayı öneririm. – Mics

+0

Buna cevap vermek için geç kalmama rağmen, bu soruyu yanıtlayan başkalarının yararı için yorumumu bırakacağım: - Spesifik bu konuda nettir. "String'in toString() öğesinin içeriği uygulamaya bağlıdır" (Bakınız: ecma-international.org/ecma-262/5.1/#sec-15.9.5.2) Tarih tunalarını daha iyi bir alternatif haline getirmeniz gerekiyorsa spec olarak kesinlikle "YYYY-AA-DDTHH: mm: ss.sssZ" biçimlendirilmiş olan toISOString() kullanmaktır. (Bakınız: ecma-international.org/ecma-262/5.1/#sec-15.9.5.43) –

cevap

3

Özetle, toString her zaman aynı biçimi vermiyor.

new Date().toString() 

baskılar

  • "Cts 11 Şubat 2012 + 0100 02:15:10 GMT" Firefox 10'da
  • "Cts 11 Şubat 2012 02:18:29 GMT + 0100 (W. Internet Explorer + 0100 2012 'Avrupa Standart Saati)" Chrome'da 16
  • ' Cts 11 Şubat 02:18:59 UTC o kaş ben bu eski tarayıcı sürümü biliyorum, ama gösterir 9

olduğunu ser bağımlı. dakika:

toTimeString() kullanırken Ancak, her zaman bunu görünür saatleri ile başlar saniye [boşluk] ... Dolayısıyla

, bunun yerine ilk [boşluk] dayalı 2 porsiyon halinde dize bölünmüş olabilir:

indexOf(" ")

Sonra yayılma

Moment ile ikinci bölümünü sarmak tarihlerin bazı dize biçimlendirme yapar, ama aynı zamanda isteğinizi işlemez toString() yöntemine bağlı olarak çok iyi bir şekilde ofset dizgesi.

O

+0

Derinlemesine cevap için teşekkürler. Muhtemelen JavaScript'imde kendi tarih biçimlendiricimi oluşturacağım; Moment.js biraz ağırdır (muhtemelen kullanmamam gereken bazı özellikler). –

+1

Spesifik bu konuda açıktır. "String'in toString() öğesinin içeriği uygulamaya bağlı" (Bkz: http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5.2) tarih tena daha iyi bir alternatif teller var specIS kesinlikle "YYYY-AA-DDTHH: mm: ss.sssZ" biçimlendirilmiş olan toISOString() kullanmaktır. (Bakınız: http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5.43) –

-1

Moment.js yardımcı JS tarihleri ​​biçimlendirme için güzel kütüphanesidir umuyoruz.

Aksi takdirde, tarayıcılar bunu farklı şekilde işledikçe kendiniz ayrıştıracaksınız.

İlgili konular