Como comparar os dia de datas php



Como posso comparar duas datas no PHP?

No banco de dados, a data parece 2011-10-2.

Se eu quisesse comparar a data de hoje com a data no banco de dados para ver qual é a maior, como eu faria isso?

Eu tentei isso,

$today = date("Y-m-d"); $expire = $row->expireDate //from db if($today < $expireDate) { //do something; }

mas realmente não funciona assim. Qual é outra maneira de fazer isso?

Update: Eu sei que este post é meio antigo, mas eu só queria mencionar o carbono, que é uma classe que é usada com laravel, mas pode ser usada com o php clássico e faz maravilhas com datas. confira: Carbon

no banco de dados a data parece com isso 2011-10-2

Guarde-o em AAAA-MM-DD e, em seguida, a comparação de cadeias funcionará porque "1"> "0", etc.

Antes de mais nada, tente dar o formato desejado para a data atual do seu servidor:

  1. Obter data atual

    $ current_date = getdate ();

  2. Data e hora separadas para gerenciá-los como desejar:

$ current_date_only = $ current_date [year] .'- '. $ current_date [mon] .'-'. $ current_date [mday]; $ current_time_only = $ current_date ['horas']. ':'. $ current_date ['minutes']. ':'. $ current_date ['segundos'];

  1. Compare-o dependendo se você estiver usando donly data ou datetime no seu banco de dados:

    $ today = $ current_date_only. ' '$ current_time_only;

    ou

    $ today = $ current_date_only;

    if ($ hoje <$ expireDate)

espero que ajude

Aqui está o meu giro sobre como obter a diferença em dias entre duas datas com o PHP. Observe o uso de '!' no formato para descartar a parte do tempo das datas, graças às informações do DateTime createFromFormat sem tempo .

$today = DateTime::createFromFormat('!Y-m-d', date('Y-m-d')); $wanted = DateTime::createFromFormat('!d-m-Y', $row["WANTED_DELIVERY_DATE"]); $diff = $today->diff($wanted); $days = $diff->days; if (($diff->invert) != 0) $days = -1 * $days; $overdue = (($days < 0) ? true : false); print "<!-- (".(($days > 0) ? '+' : '').($days).") -->\n";

Aqui está uma maneira de obter a diferença entre duas datas em minutos.

// set dates $date_compare1= date("d-m-Y h:i:s a", strtotime($date1)); // date now $date_compare2= date("d-m-Y h:i:s a", strtotime($date2)); // calculate the difference $difference = strtotime($date_compare1) - strtotime($date_compare2); $difference_in_minutes = $difference / 60; echo $difference_in_minutes;

Eu não faria isso com PHP. Um banco de dados deve saber, que dia é hoje (use o MySQL-> NOW () por exemplo), então será muito fácil comparar dentro da Consulta e retornar o resultado, sem problemas dependendo dos Data-Types utilizados

SELECT IF(expireDate < NOW(),TRUE,FALSE) as isExpired FROM tableName

Eu também tive esse problema e resolvo:

$today = date("Ymd"); $expire = str_replace('-', '', $row->expireDate); //from db if(($today - $expire) > $NUMBER_OF_DAYS) { //do something; }

Simplesmente você pode verificar ..

if ($startdate < $date) {// do something} if ($startdate > $date) {// do something}

mas ambas as datas devem estar no mesmo formato

Ymd ou dmY

etc.

Você pode usar PHP simples para comparar datas:

$date = new simpleDate(); echo $date->now()->compare($expire_date)->isBeforeOrEqual();

Isso lhe dará verdadeiro ou falso.

Você pode verificar os tutoriais para mais exemplos. Por favor clique aqui .

$today_date=date("Y-m-d"); $entered_date=$_POST['date']; $dateTimestamp1 = strtotime($today_date); $dateTimestamp2 = strtotime($entered_date); $diff= $dateTimestamp1-$dateTimestamp2; //echo $diff; if ($diff<=0) { echo "Enter a valid date"; }


Última postagem

Tag