Coleção de Funções Utilitárias para JavaScript

Funções para tratamento de Datas
 
Validação de Datas Esta função retorna um valor booleano indicando se a data é verdadeira ou falsa.
Obs.: A data deve ser passada por parâmetro no formato (dd/mm/yyyy ou dd/mm/yyyy hh:mm)
sendo que, os separadores também podem ser dd.mm.aaaa ou dd-mm-aaaa. Ou também pode ser diretamente o objeto Date().
function isDate(data){
	if(data instanceof Date)return true;
	var adt = data.replace(/[\s\:\/\.\-]/g,"-").split("-");
	if(adt.length>3){
		var odt = new Date(adt[2],--adt[1],adt[0],adt[3],adt[4]);
		var hr = (odt.getHours()==adt[3] && odt.getMinutes()==adt[4]);
	}else 
		var odt = new Date(adt[2],--adt[1],adt[0]);		
	var dt = (odt.getFullYear()==adt[2] && odt.getMonth()==adt[1] && odt.getDate()==adt[0]);
	return (adt.length>3) ? dt && hr : dt;
}
//exemplo de data verdadeira
if(isDate("31/05/2003")) alert("Esta data é verdadeira!");
//exemplo de data falsa
if(!isDate("31/06/2003")) alert("Esta data é inválida!");
Comparação de Datas Esta função retorna um inteiro longo representando a data em milisegundos.
Por se tratar de um valor inteiro, podemos utilizar esta função para comparar datas.
Obs.: É requerida a função isDate() citada acima para seu funcionamento, valendo-se das mesmas regras para a passagem da data por parâmetro.
function getMsec(data){
	if(!isDate(data))return 0;
	if(data instanceof Date)return data.valueOf();
	var dt = data.replace(/[\/\.\-]/g,"-").split("-");
	return (new Date(dt[2],--dt[1],dt[0]).valueOf());	
}	
//1. exemplo de comparação de datas
var hj = "20/05/2003";
if(getMsec(hj) != getMsec("15/09/2003")) alert("Esta não é a data do centenário do Grêmio!!");
//2. exemplo de comparação de datas
if(getMsec(data_teste) > getMsec(new Date)) alert("A data de teste deve ser menor que a data de hoje!");





Dúvidas: Marcelo Pereira R:3568 ICQ:30424756