Calculos de dias

Realmente hace poco que he empezado con php y tengo que realizar una actividad donde me pide: indique la fecha actual y cuantos días han transcurrido desde el 1 de Enero del presente año.
Bien la fecha actual la tengo, el problema es el otro código :
<?
// fecha 1
$ano1 = 2010;
$mes1 = 01;
$dia1 = 01;
// fecha 2
$ano2 = 2010;
$mes2 = 07;
$dia2 = 09;
//calculo timestam de las dos fechas
$timestamp1 = mktime(0,0,0,$mes1,$dia1,$ano1);
$timestamp2 = mktime(4,12,0,$mes2,$dia2,$ano2);
//resto a una fecha la otra
$segundos_diferencia = $timestamp1 - $timestamp2;
//convierto segundos en días
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
//obtengo el valor absoulto de los días
$dias_diferencia = abs($dias_diferencia);
//quito los decimales a los días de diferencia
$dias_diferencia = floor($dias_diferencia);
echo $dias_diferencia;
?>
La pregunta es : Que debo cambiar para para que me aparezca todos los días, ¿cuántos días han transcurrido? Por que con este código siempre me aparece 180 días, y la idea es que me salga un día 180, después 181 y así sucesivamente,, Desde ya agradezco toda sus ayudas es realmente importante, ya que estoy aprendiendo y estoy un poco perdido.. MUCHAS GRACIAS
{"lat":-36.1023764487364,"lng":-59.677734375}

1 respuesta

Respuesta
1
Para hacer lo que quieres, únicamente tienes que coger del sistema los valores de las variables $ano2, $mes2 y $dia2 con la función "date()". De la siguiente forma:
$ano2 = date("Y");
$mes2 = date("m");
$dia2 = date("d");
No sé si es obligatorio que utilices la función mktime() pero hay alguna otra que te puede hacer la vida más fácil, como:
Strtotime() (ver documentación)
Time() (ver documentación)
Date() (ver documentación)
Otras 2 maneras de hacer lo mismo:
<?php
// Timestamp inicial: las 00:00:00 del día 01 de enero de 2010
$fechaInicio = strtotime("2010-01-01 00:00:00");
// Timestamp de ahora mismo
$fechaAhora = time();
// Diferencia en segundos, $fechaAhora es siempre mayor que $fechaInicio...
$segundosDiferencia = $fechaAhora - $fechaInicio; // Restando así no hace falta llamar a abs()
// Calculándolo matemáticamente es correcto...
$diferenciaEnDiasMates = floor($segundosDiferencia / (60 * 60 * 24));
print "Calculado con segundos: <strong>" . $diferenciaEnDiasMates . "</strong> días <br />";
// O en una sola línea, aunque puede que sea trampa en tu ejercicio...
$diferenciaEnDias = date("z"); // Nº de días desde el 1 de enero (del año actual)
print "Con la función date(): <strong>" . $diferenciaEnDias . "</strong> días <br />";
?>
¡Un saludo y ánimo! No te olvides de consultar la documentación de PHP que es muy buena. PHP trae un montón de funciones que ya dan cosas hechas (como el date("z")), y están todos los ejemplos en la docu.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas