In addition to what Otto has already said, you can do this in a less specific way (which is what I thought you wanted, since you wrote that it did not fit the American standard).
If you save the date with dashes or delimiters in the middle of it, just use preg_replace(or any other function that fulfills this) in the string to remove the character that separates year, month and day. If you don’t use go straight to the next step...
After removing the delimiter characters:
<?php
$data_entrada = "01022014";
$dia_entrada = substr($data_entrada, 0, 2);
$mes_entrada = substr($data_entrada, 2, 2);
$ano_entrada = substr($data_entrada, 4, 4);
$data_saida = "01022014";
$dia_saida = substr($data_saida, 0, 2);
$mes_saida = substr($data_saida, 2, 2);
$ano_saida = substr($data_saida, 4, 4);
if ($ano_saida > $ano_entrada) {
echo "A data de saída é posterior a de entrada";
} elseif ($ano_saida == $ano_entrada) {
// CASO ANO IGUAL
if ($mes_saida > $mes_entrada) {
echo "A data de saída é posterior a de entrada";
} elseif ($mes_saida == $mes_entrada) {
// INICIO CASO MES IGUAL
if ($dia_saida > $dia_entrada) {
echo "A data de saída é posterior a de entrada";
} elseif ($dia_saida == $dia_entrada) {
echo "As datas de saída e entrada são iguais";
} elseif ($dia_saida < $dia_entrada) {
echo "A data de saída é anterior a de entrada";
} // FIM CASO MES IGUAL
} elseif ($mes_saida < $mes_entrada) {
echo "A data de saída é anterior a de entrada";
}
// FIM DO CASO ANO IGUAL
} else {
echo "A data de saída é anterior a de entrada";
}
?>
Note: If necessary, remember to remove blanks after and before the string using trim()
or others...
face.... just a question.... if the date is in format
YYYY-MM-DD
Voce need not usestrtotime
the comparison will already work by simple numerical order.– Karl Zillner