SORU
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 sonra Date'In zaman değeri. için test önerdi Eğer geçersiz bir tarih ise, zaman değeri NaN. 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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BMG Rentals Property Management

    BMG Rentals

    23 Mayıs 2011
  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008