30 AĞUSTOS 2009, Pazar
Bir tespit "geçersiz tarih" JavaScript örneği Tarih
JS içinde geçerli ve geçersiz tarih nesneler arasındaki farkı söylemek istiyorum, ama nasıl yapacağımı bulamadım:
var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'
Yazmak için herhangi bir fikir isValidDate
işlevi?
EDİT - cevaplar için teşekkürler!
- Ash tarih ayrıştırma eğer tarih dizesi geçerli olup olmadığını kontrol etmek için yetkili bir şekilde veren dizeler,
Date.parse
tavsiye. - Tercih ederim ne mümkünse benim API bir Tarih kabul örnek ve geçerli olup olmadığını iddia/veya kontrol edebilmek için. Borgar çözümü yok, ama tarayıcılarda test etmek istiyorum. Ben de daha zarif bir yolu var mı merak ediyorum.
2 DÜZENLEYİN
- Kül benim API
Date
örnekleri hiç de kabul etmek zorunda değil düşünün, bu kolay doğrulamak olacaktır yaptı. - Borgar
Date
bir örnek için test, ve sonraDate
'In zaman değeri. için test önerdi Eğer geçersiz bir tarih ise, zaman değeriNaN
. ECMA-262 (bölüm 15.9.5.9) ile kontrol ettim ve bu davranış tam ihtiyacım olan standart.
Son görevim, Borgar çözüm:
function isValidDate(d) {
if ( Object.prototype.toString.call(d) !== "[object Date]" )
return false;
return !isNaN(d.getTime());
}
CEVAP
30 AĞUSTOS 2009, Pazar
Bunu yapardım:
if ( Object.prototype.toString.call(d) === "[object Date]" ) {
// it is a date
if ( isNaN( d.getTime() ) ) { // d.valueOf() could also work
// date is not valid
}
else {
// date is valid
}
}
else {
// not a date
}
Bunu Paylaş:
&; Sağ" JSON tarih biçimi"...
İnput type=&; tarih" biçimini " d...
Raylar üzerinde Ruby, ne biçim&; th&qu...
"Java tarih biçimi iş parçacığı i...
Biçimlendirme "dün's" p...