obtener formato fecha español actual php unix timestamp strtotime mktime

formato - string to date php



Encontrar días entre 2 marcas de tiempo unix en php (8)

Hay, tengo una base de datos con eventos. Hay 2 campos ''inicio'' y ''final'', que contienen marcas de tiempo. Cuando un administrador ingresa estas fechas, solo tienen la capacidad de establecer el día, mes, año. Por lo tanto, solo estamos tratando con sellos que contienen días, meses, años, no horas, minutos, segundos (las horas, los minutos y los segundos se establecen en 0,0,0).

Tengo un evento con la hora de inicio como 1262304000 y la hora de finalización como 1262908800. Se convierten al 1 de enero de 2010 y al 8 de enero de 2010. ¿Cómo puedo obtener todos los días entre estas marcas de tiempo? Quiero poder regresar el 2 de enero de 2010 (1262390400), el 3 de enero de 2010 (1262476800) .. hasta el final del sello. Estos eventos podrían cruzarse en diferentes meses, por ejemplo, del 28 de mayo al 14 de junio.

¿Alguna idea de como hacer esto?


¿Algo como esto?

$day = $start; while ($day < $end) { $day += 86400; echo $day.'' ''.date(''Y-m-d'', $day).PHP_EOL; }

Por cierto, 1262304000 es el 31 de diciembre, no el 1 de enero.


Pienso que una solución rápida para esto es restar la cantidad de días en segundos de end_stamp hasta que llegue a start_tag.

//1 day = 86400 seconds

Me gustaría construir una matriz de los días para usar más tarde.

EDITAR (ejemplo)

$difference = 86400; $days = array(); while ( $start_time < $end_time ) { $days[] = date(''M j Y'', $end_time); $end_time -= $difference; }

Esto debería cubrir cualquier período de tiempo, incluso si es más de un montón de meses.


Prueba esto:

while($date_start <= $date_end) { echo date(''M d Y'', $date_start) . ''<br>''; $date_start = $date_start + 86400; }

Espero que esto ayude !


Solo tiene que calcular el número de segundos entre las dos fechas, luego dividir para obtener días:

$numDays = abs($smallestTimestamp - $biggestTimestamp)/60/60/24;

Luego, puede usar un bucle for para recuperar las fechas:

$numDays = abs($smallestTimestamp - $biggestTimestamp)/60/60/24; for ($i = 1; $i < $numDays; $i++) { echo date(''Y m d'', strtotime("+{$i} day", $smallestTimestamp)) . ''<br />''; }

Nuevamente, si no sabes qué marca de tiempo es la más pequeña, puedes usar la función min () (segundo argumento en strtotime).


obtenga la diferencia de dos fechas y divídala por 86400. abs (($ date1 - $ date2) / 86400) producirá el resultado necesario


**This is a very simple code for find days hours minutes and seconds in php** $dbDate = strtotime("".$yourbdDate.""); // Database date $endDate = time(); // current time $diff = $endDate - $dbDate; /// diffrence $days = floor($diff/86400); /// number of days $hours = floor(($diff-$days*86400)/(60 * 60)); //// number of hours $min = floor(($diff-($days*86400+$hours*3600))/60);///// numbers of minute $second = $diff - ($days*86400+$hours*3600+$min*60); //// secondes if($days > 0) echo $days." Days ago"; elseif($hours > 0) echo $hours." Hours ago"; elseif($min > 0) echo $min." Minute ago"; else echo "Just second ago";


$d1=mktime(22,0,0,1,1,2007); $d2=mktime(0,0,0,1,2,2007); echo "Hours difference = ".floor(($d2-$d1)/3600) . "<br>"; echo "Minutes difference = ".floor(($d2-$d1)/60) . "<br>"; echo "Seconds difference = " .($d2-$d1). "<br>"; echo "Month difference = ".floor(($d2-$d1)/2628000) . "<br>"; echo "Days difference = ".floor(($d2-$d1)/86400) . "<br>"; echo "Year difference = ".floor(($d2-$d1)/31536000) . "<br>";

http://www.plus2net.com/php_tutorial/date-diff.php

http://www.phpf1.com/tutorial/php-date-difference.html


$daysInBetween = range($startTs, $endTs, 86400); $secondDay = date(''M d Y'', $daysInBetween[1]); /* $thirdDay = date(''M d Y'', $daysInBetween[2]); ... */

Tenga en cuenta que la función range() es inclusiva.