verano una termine saber que primavera para fecha faltan falta dias cumpleaños cuantos cuanto año php datetime

php - una - ¿Cuántos días faltan para la fecha XYZ?



cuantos dias faltan para que termine el año (6)

Dada una fecha determinada, ¿cuál es la forma más fácil de determinar cuántos días hasta esa fecha (en PHP)? Estoy tratando de construir un widget de cuenta atrás, ¡Gracias!


Acabo de encontrar esto en mi código para una aplicación en vivo donde el sistema se considera incorrectamente hoy y mañana como hoy. Acabamos de entrar en el horario de verano británico y esto ha causado un problema con nuestra aplicación.

Ahora estoy usando lo siguiente, que me está dando el resultado correcto:

function days_away_to($dt) { $mkt_diff = strtotime($dt) - time(); return floor( $mkt_diff/60/60/24 ) + 1; # 0 = today, -1 = yesterday, 1 = tomorrow }

Por supuesto, usar la clase DateTime es la mejor solución en el futuro ...


Ampliando la respuesta de Schnaader, aquí hay una función de una sola línea que toma una cadena de fecha como parámetro, pero solo devuelve el número de días:

<?php function days_until($date){ return (isset($date)) ? floor((strtotime($date) - time())/60/60/24) : FALSE; } ?>


Días en formato de minutos y segundos:

// current time $today = new DateTime(format_date(time(), ''custom'', ''d M Y H:i:s'')); // date to which we want to compare (A Drupal field in my case). $appt = new DateTime(format_date($yourdate_is_timestamp, ''custom'', ''d M Y H:i:s'' )); // Months $months_until_appt = $appt->diff($today)-> m; // days $days_until_appt = $appt->diff($today)-> days; // hours $hours_until_appt = $appt->diff($today)-> h; // minutes $minutes_until_appt = $appt->diff($today)-> i; // seconds $seconds_until_appt = $appt->diff($today)-> s; echo ''days until: '' . $days_until_appt; echo ''hours until: '' . $hours_until_appt; echo ''minutes until: '' . $minutes_until_appt; echo ''seconds until: '' . $seconds_until_appt;


No trate las fechas como números enteros. Use su base de datos, que tiene un buen soporte para tratar con calendarios / tiempo.

select datediff("2009-11-12", now())



<?php $cdate = mktime(0, 0, 0, 12, 31, 2009, 0); $today = time(); $difference = $cdate - $today; if ($difference < 0) { $difference = 0; } echo "There are ". floor($difference/60/60/24)." days remaining"; ?>