validar una saber que paso otra mayor fechas fecha comparar compara php

que - saber si una fecha ya paso php



Cómo comparar dos fechas en php (13)

Deberá asegurarse de que sus fechas sean objetos de fecha válidos.

Prueba esto:

$date1=date(''d/m/y''); $tempArr=explode(''_'', ''31_12_11''); $date2 = date("d/m/y", mktime(0, 0, 0, $tempArr[1], $tempArr[0], $tempArr[2]));

A continuación, puede realizar el método strtotime() para obtener la diferencia.

Cómo comparar dos fechas en php si las fechas están en formato ''03_01_12'' y ''31_12_11'' .

Estoy 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;

Pero no está funcionando ...


Extendiendo la respuesta de @ nevermind, uno puede usar DateTime::createFromFormat: like,

// use - instead of _. replace _ by - if needed. $format = "d-m-y"; $date1 = DateTime::createFromFormat($format, date(''d-m-y'')); $date2 = DateTime::createFromFormat($format, str_replace("_", "-",$date2)); var_dump($date1 > $date2);


La función date_diff () devuelve la diferencia entre dos objetos DateTime.

Si la primera fecha es anterior a la segunda fecha, se devolverá un número positivo de días; de lo contrario, un número negativo de días:

<?php $date1=date_create("2013-03-15"); $date2=date_create("2013-12-12"); $diff=date_diff($date1,$date2); echo $diff->format("%R%a days"); ?>

la salida será "+272 días";

cambiando $ date1 = "2014-03-15"

<?php $date1=date_create("2014-03-15"); $date2=date_create("2013-12-12"); $diff=date_diff($date1,$date2); echo $diff->format("%R%a days"); ?>

La salida será "-93 días"


No sé cuál es tu problema, pero sí:

function date_compare($d1, $d2) { $d1 = explode(''_'', $d1); $d2 = explode(''_'', $d2); $d1 = array_reverse($d1); $d2 = array_reverse($d2); if (strtotime(implode(''-'', $d1)) > strtotime(implode(''-'', $d2))) { return $d2; } else { return $d1; } }


Prueba esto

$data1 = strtotime(/date("d/m/Y")); $data1 = date_create($data1); $data2 = date_create("21/06/2017"); if($data1 < $data2){ return "The most current date is date1"; } return "The most current date is date2";


Puede converte para el número entero y comparar.

P.ej.:

$ date_1 = date (''Ymd''); $ date_2 = ''31_12_2011'';

$ date_2 = (int) implode (array_reverse (explode ("_", $ date_2)));

echo ($ date_1 <$ date_2)? ''$ date_2 es ​​más grande que $ date_1'': ''$ date_2 es ​​más pequeño que $ date_1'';


Sé que esto es tarde, pero para referencia futura, coloque el formato de fecha en un formato reconocido usando str_replace, entonces su función funcionará. (reemplace el guión bajo con un guion)

//change the format to dashes instead of underscores, then get the timestamp $date1 = strtotime(str_replace("_", "-",$date1)); $date2 = strtotime(str_replace("_", "-",$date2)); //compare the dates if($date1 < $date2){ //convert the date back to underscore format if needed when printing it out. echo ''1 is small=''.$date1.'',''.date(''d_m_y'',$date1); }else{ echo ''2 is small=''.$date2.'',''.date(''d_m_y'',$date2); }


Tus corchetes no son todos coincidentes:

if(strtotime($date1))<strtotime($date2)))

Cambiar a esto:

if(strtotime($date1) < strtotime($date2))


Usando DateTime::createFromFormat :

$format = "d_m_y"; $date1 = /DateTime::createFromFormat($format, "03_01_12"); $date2 = /DateTime::createFromFormat($format, "31_12_11"); var_dump($date1 > $date2);


compare el resultado de maketime() para cada una de las veces


puedes probar algo como:

$date1 = date_create(''2014-1-23''); // format of yyyy-mm-dd $date2 = date_create(''2014-2-3''); // format of yyyy-mm-dd $dateDiff = date_diff($date1, $date2); var_dump($dateDiff);

A continuación, puede acceder a la diferencia en días como $ dateDiff-> d;


No responde el problema real de OP, pero solo responde el título. Dado que este es el resultado superior para "comparar fechas en php".

Bastante simple de usar Datetime Objects ( v>= 5.3.0 ) y compararlos directamente

$date1 = new DateTime("now"); $date2 = new DateTime("tomorrow"); var_dump($date1 < $date2);

Nota: el objeto de fecha y hora también se puede crear para una fecha predefinida como se muestra a continuación.

$date1 = new DateTime(''2009-10-11'');


<?php $expiry_date = "2017-12-31 00:00:00" $today = date(''d-m-Y'',time()); $exp = date(''d-m-Y'',strtotime($expiry_date)); $expDate = date_create($exp); $todayDate = date_create($today); $diff = date_diff($todayDate, $expDate); if($diff->format("%R%a")>0){ echo "active"; }else{ echo "inactive"; } echo "Remaining Days ".$diff->format("%R%a days"); ?>