Clipper On Line • Ver Tópico - Comparação de datas em PHP
Página 1 de 1

Comparação de datas em PHP

MensagemEnviado: 21 Jun 2014 19:42
por cjp
Preciso saber como fazer comparação de datas em PHP.

Em Harbour faço assim:

if dtaquila<date()-60


Sendo que dtaquila é um campo da base de dados do tipo data.

No PHP, vi no manual que a função date() retorna um campo data em vários formatos, mas não estou conseguindo fazer a comparação, nem mesmo quando coloco uma variável equivalente ao campo dtaquila da base no mesmo formato usado para a data atual (estou usando date('Y-m-d')).

Também vi no Google alguém sugerindo usar getdate(), mas também não conseguir usar.

Testei vários outros meios que achei no Google, mas nenhum deu certo.

Alguém me ajuda?

Comparação de datas em PHP

MensagemEnviado: 22 Jun 2014 09:56
por Toledo
Inácio, em PHP a comparação entre datas é um pouco diferente do que estamos acostumados com Harbour. A melhor maneira de comparar duas datas em PHP é transformar a data em um timestamp Unix (o número de segundos desde 01/01/1970), para isto podemos usar a função StrToTime(). Então o seu exemplo ficaria assim:

if (StrToTime(dtaquila) < StrToTime("-60 days"))

Obs.: o formato de dtaquila tem que ser "2014-06-22" (ANO-MES-DIA)

A expressão StrToTime("-60 days") é isto mesmo, corresponde a data atual - 60 dias.

O interessante do timestamp, que é calculado em números de segundos, então além da data pode também armazenar a hora. Aqui no BD do fórum, não tem um campo data e outro hora, nas tabelas existe apenas um campo onde é gravado o timestamp, assim já sei em que data e hora (horas:minutos:segundos) as mensagens são postadas.

Abraços,

Comparação de datas em PHP

MensagemEnviado: 23 Jun 2014 00:37
por cjp
Entendido, meu caro, funcionou. Muito obrigado.