2009-12-03 18 views
7

Ben örneğin, her sayfada tarih saat damgalarını görüntüleyen bir web uygulaması vardır:- istemci tarafında

12 Aralık 2009 18:00

Kullanıcının zaman dilimini dinamik olarak tespit etmek ve ekranı JavaScript kullanarak değiştirmek istiyorum.

Yani New York kullanıcı görecekti:

12 Aralık 2009 18:00

Kaliforniya kullanıcı görecekti ederken:

12 Aralık 2009 3 : 00 pm

Herhangi bir öneriniz var mı?

+2

http://prideparrot.com/blog/archive/2011/9/how_to_display_dates_and_times_in_clients_timezone – VJAI

cevap

2

harika "ilerici geliştirme" ile bunu yapabileceğimi nasıl UTC, vb. Ardından, yüklenen yerel saatle değiştirin (Orijinal saat dilimi sağlanmışsa, otomatik olarak JavaScript tarafından işlenir).

<div id="timestamp">December 12, 2009 6:00 pm GMT</div> 
<script type="text/javascript"> 
    var timestamp = document.getElementById('timestamp'), 
     t   = new Date(timestamp.innerHTML), 
     hours  = t.getHours(), 
     min  = t.getMinutes() + '', 
     pm  = false, 
     months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; 

    if(hours > 11){ 
     hours = hours - 12; 
     pm = true; 
    } 

    if(hours == 0) hours = 12; 
    if(min.length == 1) min = '0' + min; 

    timestamp.innerHTML = months[t.getMonth()] + ' ' + t.getDate() + ', ' + t.getFullYear() + ' ' + hours + ':' + min + ' ' + (pm ? 'pm' : 'am'); 
</script> 
+0

IE'nin bu biçimi doğru şekilde ayrıştırmasından şüphe duyuyorum. – Bergi

+0

@Bergi - IE, IE8 + –

+0

'da çalışır. IE 11'de çalışmıyor –

6

Yerel ofsetleri GMT'den almak için Date.getTimeZoneOffset()'u kullanabilirsiniz. Bir SMOP'dan, buradan. Javascript Date nesnesini kullanarak, okunabilir bir tarih elde etmek için date.toDateString numaralı telefonu arayabilirsiniz. Sunucu tarafına ihtiyacınız varsa, Javascript'in ofsetini sunucunuza bir GET veya POST ile göndermesini sağlayın.

Tarihi biçimlendirmek başka bir hikaye. Javascript çok fazla yerleşik değil. Kendini kesebilirsin ama bu şekilde böcek ve çılgınlık yatıyor. Tarih formatlama, herhangi bir iyi Javascript kütüphanesi sağlamalıdır. Örneğin, JQuery'de Datepicker.formatDate vardır.

Çıktı görünmesini istediğiniz tarih, ama burada GMT kullanmak onun dilimini (belirtmek için kesinlikle, fakat şunu kullanabilirsiniz: Burada

0

Size çok yardımcı olabilir tarih ve saati ile ilgili işlevleri vardır ExtJS kütüphane kullanıyor. Aslında, Mozilla Firefox'umda, tüm tarih ve saatleri tarayıcı saat dilimine göre görüntüler.

İlgili konular