Como comparar duas datas em php se as datas estiverem no formato '03_01_12'
e '31_12_11'
.
Estou usando este código:
$date1=date('d_m_y');
$date2='31_12_11';
if(strtotime($date1) < strtotime($date2))
echo '1 is small ='.strtotime($date1).','.$date1;
else
echo '2 is small ='.strtotime($date2).','.$date2;
Mas não está funcionando ..
Respostas:
Você terá que se certificar de que suas datas são objetos de data válidos.
Experimente isto:
Você pode então executar o
strtotime()
método para obter a diferença.fonte
Usando DateTime :: createFromFormat :
fonte
;, :, (, ), /, ., ,, -
funcionará.A função date_diff () retorna a diferença entre dois objetos DateTime.
Se a primeira data for anterior à segunda data, um número positivo de dias será retornado; caso contrário, um número negativo de dias:
a saída será "+272 dias";
alterando $ date1 = "2014-03-15"
A produção será de "-93 dias"
fonte
fonte
Não respondendo ao problema real do OP, mas respondendo apenas ao título. Uma vez que este é o principal resultado para "comparação de datas em php".
Muito simples de usar objetos Datetime (
php >= 5.3.0
) e compará-los diretamentefonte
Estendendo a resposta de @ nevermind, pode-se usar DateTime :: createFromFormat: como,
fonte
você pode tentar algo como:
Você pode então acessar a diferença em dias como este $ dateDiff-> d;
fonte
Não sei qual é o seu problema, mas:
fonte
Tente isto
fonte
compare o resultado de
maketime()
para cada vezfonte
Eu sei que é tarde, mas para referência futura, coloque o formato de data em um formato reconhecido usando str_replace para que sua função funcione. (substitua o sublinhado por um travessão)
fonte
Você pode converter para um número inteiro e comparar.
Por exemplo.:
fonte
Eu acho que esta é uma função muito simples
fonte
Caras, por favor, não tornem isso tão complexo A resposta simples abaixo
Acabei de adicionar mais duas linhas com o seu código
fonte
Se ambas as datas estiverem no mesmo formato, use um operador de comparação.
Resultado: 05/05/2018 é anterior a 19/08/2019
fonte