Detecting an “invalid date” (v7)

Revision 7 of this benchmark created on


Description

I'd like to be able to tell if a given input is a valid Date input, in the best possible performance.

Setup

var valid = new Date();
    var invalid = new Date('invalid');

Test runner

Ready to run.

Testing in
TestOps/sec
timestamp isNaN
!isNaN(valid.getTime());
!isNaN(invalid.getTime());
ready
isFinite
isFinite(valid);
isFinite(invalid);
ready
comparison
// An invalid date object returns NaN for getTime() and NaN is the only
// object not strictly equal to itself.
valid.getTime() === valid.getTime();
invalid.getTime() === invalid.getTime()
ready
comparison 2
// An invalid date object returns NaN for getTime() and NaN is the only
// object not strictly equal to itself.
var validTime = valid.getTime();
validTime === validTime;
var invalidTime = invalid.getTime();
invalidTime === invalidTime;
ready
comparison 3
'Invalid Date' != valid;
'Invalid Date' != invalid;
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.