Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um campo numa tabela chamada "tempo" que nela contém uma hora e uma data separadas por um "|".
Nesta caso, vou usar como exemplo "15:12:3|04.24.12";
Agora preciso checar se a hora e o dia já passou o não.
Fiz isso:
$tempo = ( QUERY QUE PEGA DADOS )
$tempo_exploded = explode("|",$tempo);
$errors = "";
if(strtotime($tempo_exploded[1]) < strtotime(date("m.d.y")) || strtotime($tempo_exploded[1]) == strtotime(date("m.d.y"))){ }else{ $errors .= "s"; }
if(strtotime($tempo_exploded[0]) < strtotime(date("H:i:s"))){ }else{ $errors .= "s"; }
if($errors == ""){
return false;
}else{
return true;
}
mas não deu, me ajudem D=
Não entendi direito o que você está fazendo aí no código. Você só pode usar strtotime com formatos padronizados e se você passar apenas o formato para a função date, será retornada data atual no formato especificado.
Se eu tivesse esse problema que você está tendo eu resolveria da seguinte forma...
<?phpdate_default_timezone_set('UTC'); $data = "15:12:3|04.24.12"; // Retorna um array onde cada elemento é um número da data acima$partes = preg_split("/[|:.]/", $data); // Retorna timestamp do unix$tempo = mktime($partes[0], $partes[1], $partes[2], $partes[3], $partes[4], $partes[5]); // Aplica um novo formato de dataecho date("d/m/Y H:i:s", $tempo);
Um timestamp representa o número de segundos passados em uma data desde 1 de janeiro de 1970. Então quanto maior o timestamp, mais recente é a data, assim você pode fazer uma operação if x > y com dois timestamps para saber se o timestamp x é maior que o timestamp y.