2013-10-13 16 views
13

Bu ss: dd: ss tarih nesnesinden nasıl alabilirim?jquery: Tarih nesnesi ss: dd: ss nasıl alınır?

var d = new Date(); // for now 
datetext = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds(); 

Ben

12:10:1 

ki ben bu yanı saat ve dakika olur varsayalım

12:10:01 

olmalıdır bazen aşağıda bu sonucu olsun.

Yani ben sonra bu

01:01:01 

değil bu 1: 1: 1

+1

Her bir değerin 10'dan küçük olup olmadığını ve sıfıra mı hazırlanıyor? – Pointy

+0

evet haklısın - iyi düşün! – laukok

+2

Bir göz atın: http://stackoverflow.com/questions/5914020/javascript-date-to-string – rd3n

cevap

27

Çözüm - (tl; dr versiyonu)

datetext = d.toTimeString().split(' ')[0]

Açıklama:

toTimeString, tam zamanı döndürür. Sadece zaman bileşenini almak için boşluğa böleriz, daha sonra kullanımdaki ilk değeri alırız. :)

Komple Akışı:

d = new Date(); 
// d is "Sun Oct 13 2013 20:32:01 GMT+0530 (India Standard Time)" 
datetext = d.toTimeString(); 
// datestring is "20:32:01 GMT+0530 (India Standard Time)" 
// Split with ' ' and we get: ["20:32:01", "GMT+0530", "(India", "Standard", "Time)"] 
// Take the first value from array :) 
datetext = datetext.split(' ')[0]; 

Not: Bu hızlı olacaktır yürütülmesi için gerekli herhangi bir harici dosyaları veya kütüphanelerini dolayısıyla zaman dahil etmenizi gerektirmez.

+0

Gerçekten güzel, tek hat çözümü :) İyi. – maddy

5

Bazı tarih/saat kitaplığını kontrol etmenizi öneririm. Moment.js iyi bir örnektir.

Sen Burada basitçe

var d = new Date(); 
var formatteddatestr = moment(d).format('hh:mm:ss a'); 

altında yapmak Bu kod parçacığını kullanabileceğiniz bir example from fiddle

+0

Bu keman bana sordu "16:07:37" yerine "04:07:37" verdi. – user3070485

+0

Belgeleri gözden geçirmenizi öneririm. Biçimlendiriciyi değiştirirseniz, istediğiniz şekilde işleyebileceğinizden emin olun. –

10

olduğunu olabilir. Ayrıca jsfiddle'a ekledim ve türden daha güvenli yorumlar ekledim, bu yüzden kemanı kontrol ettiğinizden emin olun.

jQuery kullanıyorsanız, hazır fonksiyonunuzun içinde arayın. Aksi halde, alanınızın değerini güncellemek için düz JavaScript kullanabilirsiniz.

$(document).ready(function(){ 
    var d = new Date(); 
    var formatted_time = time_format(d); 
    $('#yourTimeField').text(formatted_time); 
}); 

(o jsfiddle kod parçacığı olduğu gibi aynı zamanda, tek bir dosyada yapıştırın olabilir) Betiğinize bu iki yöntemleri ekleyin: o Umarım yardımcı olur :) var

function time_format(d) { 
    hours = format_two_digits(d.getHours()); 
    minutes = format_two_digits(d.getMinutes()); 
    seconds = format_two_digits(d.getSeconds()); 
    return hours + ":" + minutes + ":" + seconds; 
} 

function format_two_digits(n) { 
    return n < 10 ? '0' + n : n; 
} 

:

+1

Bu cevabı kabul edilenden çok tercih ediyorum çünkü burada diziyi "kör düzeltmek" yerine gerçek saatler, dakikalar ve saniyeler kullanıyorsunuz. –

1

http://momentjs.com/ kullanmayı da deneyebilirsiniz. Tarihlerin ayrıştırılması, doğrulanması, değiştirilmesi ve biçimlendirilmesi için bir javascript tarih kitaplığı.

İlgili konular