Comparação de dias não funciona

Estava tentando gerar uma função de comparação de dias onde retornaria uma mensagem de erro caso a data de início fosse posterior a data final, mas não consegui mesmo acreditando que o script está correto. Alguém poderia me ajudar a resolver? Neste caso sempre contabilizava como se o tempo estivesse posterior a data de hoje mesmo eu colocando a data anterior, sempre aparecendo os avisos dos dois erros independente da diferença.

function checkDateSimple($dt1, $dt2, $msg) {
	$dt_dif = sc_date_dif($dt1, "aaaa-mm-dd", $dt2, "aaaa-mm-dd");
	if ($dt_dif > 0) sc_error_message($msg);
}

$at = date("Y-m-d");
checkDateSimple({dt_inicio}, $at, "Data de início não pode ser depois de hoje!");
checkDateSimple({dt_inicio}, {dt_final}, "Data de início não pode ser depois da data final!");

sc_date_dif lhe retorna 3 posições, dia, mês e ano, aí quando vc for validar tem q validar somente a posição do dia e não toda a variável $dt_dif

O erro era de indentação do IF, tinha que ter posto as chaves.

Na verdade o PHP não exige as chaves no if quando se tem apenas um comando na condição, apesar do PSR-4 adotar sempre como padrão as chaves.

O que acontece é que a macro sc_error_message não é um único comando, ao gerar o fonte da aplicação essa macro cria várias linhas de comando, daí o erro aparecer.

Macros SCRIPTCASE, são formas simplificadas de se escrever inúmeras linhas de comandos php ou js.

1 Curtida