Your best option, if you're accepting input and converting it to a date, either split by part or as a Date
object, is to simply construct a new Date
object by passing it the input value:
var input = document.getElementById( 'id' ).value;
var d = new Date( input );
if ( !!d.valueOf() ) { // Valid date
year = d.getFullYear();
month = d.getMonth();
day = d.getDate();
} else { /* Invalid date */ }
This way you can leverage Date
s handling of multiple input formats - it will take YYYY/MM/DD, YYYY-MM-DD, MM/DD/YYYY, even full text dates ( 'October 25, 2013' ), etc. without having you write your own parser. Valid dates are then easily checked by !!d.valueOf()
- true if it's good, false if not :)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…