diff --git a/snippets/isDateValid.md b/snippets/isDateValid.md new file mode 100644 index 000000000..2ad17c3b1 --- /dev/null +++ b/snippets/isDateValid.md @@ -0,0 +1,23 @@ +--- +title: isDateValid +tags: date,intermediate +--- + +Returns `true` if a valid date object can be created from the given values, `false` otherwise. + +- Use the spread operator (`...`) to pass the array of arguments to the `Date` constructor. +- Use `Date.prototype.valueOf()` and `Number.isNaN()` to check if a valid `Date` object can be created from the given values. + +```js +const isDateValid = (...val) => !isNaN(new Date(...val).valueOf()); +``` + +```js +isDateValid('December 17, 1995 03:24:00'); // true +isDateValid('1995-12-17T03:24:00'); // true +isDateValid('1995-12-17 T03:24:00'); // false +isDateValid('Duck'); // false +isDateValid(1995, 11, 17); // true +isDateValid(1995, 11, 17, 'Duck'); // false +isDateValid({}); // false +```