I’d like to tell the difference between valid and invalid date objects in JS, but couldn’t figure out how:
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'
Any ideas for writing an
- Ash recommended
Date.parsefor parsing date strings, which gives an authoritative way to check if the date string is valid.
- What I would prefer, if possible, is have my API accept a Date instance and to be able to check/assert whether it’s valid or not. Borgar’s solution does that, but I need to test it across browsers. I also wonder whether there’s a more elegant way.
- Ash made me consider not having my API accept
Dateinstances at all, this would be easiest to validate.
- Borgar suggested testing for a
Dateinstance, and then testing for the
Date‘s time value. If the date is invalid, the time value is
NaN. I checked with ECMA-262 and this behavior is in the standard, which is exactly what I’m looking for.