Skip to content

Instantly share code, notes, and snippets.

@ZiTAL
Created April 29, 2015 08:18
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save ZiTAL/f36e2d8191aa9407d383 to your computer and use it in GitHub Desktop.
javascript: validate date
function isValidDate(data)
{
var m = data.match(/^([0-9]{2})\/([0-9]{2})\/([0-9]{4})\ ([0-9]{2})\:([0-9]{2})\:([0-9]{2})$/);
if(m!=null)
{
var o =
{
d: m[1],
m: parseInt(m[2])-1,
Y: m[3],
H: m[4],
i: m[5],
s: m[6]
};
}
else
{
var m = data.match(/^([0-9]{2})\/([0-9]{2})\/([0-9]{4})\ ([0-9]{2})\:([0-9]{2})$/);
if(m!=null)
{
var o =
{
d: m[1],
m: parseInt(m[2])-1,
Y: m[3],
H: m[4],
i: m[5],
s: '00'
};
}
else
{
var m = data.match(/^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/);
if(m!=null)
{
var o =
{
d: m[1],
m: parseInt(m[2])-1,
Y: m[3],
H: '00',
i: '00',
s: '00'
};
}
}
}
if(typeof o != 'undefined')
{
var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
if(o['Y'] % 400 == 0 || (o['Y'] % 100 != 0 && o['Y'] % 4 == 0))
monthLength[1] = 29;
if(o['m']<0 || o['m']>11)
return false;
if(o['d']<1 || o['d']>monthLength[o['m']])
return false;
if(o['H']<0 || o['H']>23)
return false;
if(o['i']<0 || o['i']>59)
return false;
if(o['s']<0 || o['s']>59)
return false;
return true;
}
return false;
}
console.log(isValidDate('29/02/2015 03:04:05'))
console.log(isValidDate('29/02/2015 03:04'))
console.log(isValidDate('29/02/2015'))
console.log(isValidDate('28/02/2015 03:65:02'))
console.log(isValidDate('28/02/2015 25:00'))
console.log(isValidDate('32/13/2015'))
console.log(isValidDate('28/02/2015 03:04:05'))
console.log(isValidDate('28/02/2015 03:04'))
console.log(isValidDate('28/02/2015'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment