I am running the code below, checking if the string is a date. One of my input values is 'text' which returns the NaN value but my if clause does not work as expected.
function isDate(myDate) {
console.log('myDate = ' + myDate);
return Date.parse(new Date(myDate));
}
// var date1 = '1/5/22'; // good date
var date1 = 'test'; // bad date
var whatDate = isDate(date1);
console.log('date = ' + whatDate);
if (whatDate == 'NaN') {
console.log('bad date');
} else {
console.log('good date');
}Advertisement
Answer
You’re almost there:
if(whatDate == 'NaN'){
log.debug('bad date');
}else{
log.debug('good date');
}
Instead of comparing whatDate to 'NaN' use the function isNaN():
if(isNaN(whatDate)){
log.debug('bad date');
}else{
log.debug('good date');
}
Alternatively, if you really want to compare to 'NaN' you first have to convert whatDate to a string:
if((whatDate + "") == 'NaN'){
log.debug('bad date');
}else{
log.debug('good date');
}
Is one possibility. Another way would be
if(whatDate.toString() == 'NaN'){
log.debug('bad date');
}else{
log.debug('good date');
}