Skip to content

Instantly share code, notes, and snippets.

@weird-coon
Created October 9, 2020 09:58
Show Gist options
  • Select an option

  • Save weird-coon/067baa007b11736fd6cb062f04594dd1 to your computer and use it in GitHub Desktop.

Select an option

Save weird-coon/067baa007b11736fd6cb062f04594dd1 to your computer and use it in GitHub Desktop.

Revisions

  1. weird-coon created this gist Oct 9, 2020.
    30 changes: 30 additions & 0 deletions validation_date.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    /**
    * Get the number of days in any particular month
    * @link https://stackoverflow.com/a/1433119/1293256
    * @param {integer} m The month (valid: 0-11)
    * @param {integer} y The year
    * @return {integer} The number of days in the month
    */
    var daysInMonth = function (m, y) {
    switch (m) {
    case 1 :
    return (y % 4 == 0 && y % 100) || y % 400 == 0 ? 29 : 28;
    case 8 : case 3 : case 5 : case 10 :
    return 30;
    default :
    return 31
    }
    };

    /**
    * Check if a date is valid
    * @link https://stackoverflow.com/a/1433119/1293256
    * @param {[type]} d The day
    * @param {[type]} m The month
    * @param {[type]} y The year
    * @return {Boolean} Returns true if valid
    */
    var isValidDate = function (d, m, y) {
    m = parseInt(m, 10) - 1;
    return m >= 0 && m < 12 && d > 0 && d <= daysInMonth(m, y);
    };