JSFiddle - React, Tailwind, and code Playground

by pschinko

HTML

<input id="date1" type="date" />
<input id="date2" type="date" />

JavaScript

function DaysOfMonth(nYear, nMonth) {
        
        switch (nMonth) {
            case 0:
                return 31;break;
            case 1:
                return (nYear % 4) == 0 ? 29 : 28;
                break;
            case 2:
                return 31;break;
            case 3:
                return 30;break;
            case 4:
                return 31;break;
            case 5:
                return 30;break;
            case 6:
                return 31;break;
            case 7:
                return 31;break;
            case 8:
                return 30;break;
            case 9:
                return 31;break;
            case 10:
                return 30;break;
            case 11:
                return 31;break;
        }
    };
function isValidDate(d) {
    var dateRegEx = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
    return d.match(dateRegEx)  == null ? false : true; 
} 

function lpad(n, width, z) {
  z = z || '0';
  n = n + '';
  return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}

function dateFr2Us(tfr_date) {
    
    try{
        var fr_date = tfr_date.split('/');
        var us_date = fr_date.reverse().join('-');
        return us_date;
    }catch(err){
        alert(err);
    }
}

function dateUs2Fr(us_date) {
    
    us_date = us_date.split('-');
    var fr_date = us_date.reverse().join('/');
    fr_date =  fr_date.replace('...