JS'de geçerli ve geçersiz tarih nesneleri arasındaki farkı söylemek istiyorum, ancak nasıl olduğunu anlayamadı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'
Bir isValidDate
işlev yazmak için herhangi bir fikrin var mı?
Date.parse
Tarih dizelerinin ayrıştırılması için önerilen kül , tarih dizesinin geçerli olup olmadığını kontrol etmek için yetkili bir yol sunar.- Mümkünse tercih edeceğim şey, API'mın bir Date örneğini kabul etmesi ve geçerli olup olmadığını kontrol edebilmesidir. Borgar'ın çözümü bunu yapıyor, ancak tarayıcılarda test etmem gerekiyor. Ayrıca daha zarif bir yol olup olmadığını merak ediyorum.
- Ash, API'mın
Date
örnekleri kabul etmediğini düşünmemi sağladı , bunu doğrulamak en kolayı olurdu. - Borgar bir
Date
örnek için test yapılmasını ve ardındanDate
's zaman değerini test etmeyi önerdi . Tarih geçersizse, zaman değeri olurNaN
. ECMA-262 ile kontrol ettim ve bu davranış standart, tam olarak aradığım şey.
return ( Object.prototype.toString.call(d) === "[object Date]" && !isNaN(d.getTime()) );