Comparar duas datas
Olá, beleza?
Estou com o seguinte problema, preciso comparar duas datas através do javascript e teria que funcionar assim: Após fazer a verificação das datas ao clicar no campo sequinte, se encontra-se alguma irregularidade apareceria um alert, eu vi um exemplo , mas não soube adapta-lo ao meu código peço a vocês q me ajudem, desde já agradeço.
O exemplo que eu achei foi esse:
<script language="JavaScript1.1" type="text/javascript" defer="defer">// Função que monta a data no formato correto para compará-lafunction montaData( p_data ) { var diasMeses = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var v_exp = /(0?[1-9]|[12][0-9]|3[01])[\-\/](1[0-2]|0?[1-9])[\-\/]((19|20)?\d{2})$/; if ( v_exp.test( p_data ) ) { var v_data = v_exp.exec( p_data ); var v_dia = v_data[ 1 ]; var v_mes = v_data[ 2 ]; var v_ano = ( v_data[ 4 ] ) ? v_data[ 3 ] : '19' + v_data[ 3 ]; diasMeses[2] = ( ( v_ano % 400 == 0 ) || (( v_ano % 4 == 0 ) && ( v_ano % 100 != 0 )) ) ? 29 : 28; :wacko: if ( v_dia <= diasMeses[ v_mes ] ) return [ v_dia, v_mes, v_ano ]; } return null;} // Função que faz a comparação mesmofunction comparaData( p_dtPrim, p_dtSeg, p_oper ) { var v_prim = montaData( p_dtPrim ); var v_seg = montaData( p_dtSeg ); p_oper = ( p_oper ) ? p_oper : '<'; if ( !v_prim || !v_seg ) return false; var v_data1 = v_prim[ 2 ] + v_prim[ 1 ] + v_prim[ 0 ]; var v_data2 = v_seg[ 2 ] + v_seg[ 1 ] + v_seg[ 0 ]; var v_result = eval(v_data1 + p_oper + v_data2); return v_result;}</script>
Eu tentei modificar assim:
<script language="JavaScript1.1" type="text/javascript" defer="defer">// Função que monta a data no formato correto para compará-lafunction montaData( p_data ) { var diasMeses = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var v_exp = /(0?[1-9]|[12][0-9]|3[01])[\-\/](1[0-2]|0?[1-9])[\-\/]((19|20)?\d{2})$/; if ( v_exp.test( p_data ) ) { var v_data = v_exp.exec( p_data ); var v_dia = v_data[ 1 ]; var v_mes = v_data[ 2 ]; var v_ano = ( v_data[ 4 ] ) ? v_data[ 3 ] : '19' + v_data[ 3 ]; diasMeses[2] = ( ( v_ano % 400 == 0 ) || (( v_ano % 4 == 0 ) && ( v_ano % 100 != 0 )) ) ? 29 : 28; if ( v_dia <= diasMeses[ v_mes ] ) return [ v_dia, v_mes, v_ano ]; } return null;} // Função que faz a comparação mesmofunction comparaData( textdata_entrada, textdata_saida, p_oper ) { var v_prim = montaData( textdata_entrada ); var v_seg = montaData( textdata_saida ); p_oper = ( p_oper ) ? p_oper : '<'; if ( !v_prim || !v_seg ) return false; var v_data1 = v_prim[ 2 ] + v_prim[ 1 ] + v_prim[ 0 ]; var v_data2 = v_seg[ 2 ] + v_seg[ 1 ] + v_seg[ 0 ]; var v_result = eval(v_data1 + p_oper + v_data2); return v_result;}if (v_data1 <= v_data2) { alert('Datas estão certas!'); return true; } else { alert('ATENÇÃO: Data de saída é menor que data de entrada'); document.all.textdata_entrada.final.focus(); document.all.textdata_saida.final.select(); return false; }</script> :wacko:Discussão (5)
Carregando comentários...