Soporte » Plugins y Hacks » Hacks » contador de dias

  • Resuelto carmigh

    (@carmigh)


    Hola!! En el pie de página de este sitio se está ejecutando el siguiente código:

    <?php
    //creas un objeto de la clase fecha con la fecha de ahora, con la hora tambien
    $fecha1 = new DateTime(date('Y-m-d H:i:s'));
     
    //creas otro objeto con la fecha con la que quieres calcular si la diferencia es de un dia o mas
    $fecha2 = new DateTime('2020-09-23 00:29:24');
     
    //calculamos la diferencia entre las fechas con la funcion diff que nos devuelve otro objeto
    $resta = $fecha2->diff($fecha1);
     
    //para tu caso usaremos la diferencia en dias que se encuentra en la propiedad $resta->d
    // años estaria en $resta->y, horas en $resta->h, estan todos los datos
    // si $resta->d es mayor o igual a 1
    $cont=296;
    if ($resta->d >= 1){
      //codigo para actualizar el contador
    $cont=$cont + $resta->d;
    }
    echo "Edición N°: ", $cont
    ?>

    éste hace que «Edición Nº» vaya incrementandose en uno cada día, pero hace unos días atrás dejo de hacerlo. Cambié la fecha del objeto 2 pero no logré que se vaya incrementando de uno en uno, como se habrán dado cuenta no soy programadora php y no me doy cuenta donde está el error. Agradeceria si alguien puede ayudarme con este u otro código que cumpla el mismo objetivo: que día a día el numero se incremente en uno. Gracias!!

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Moderador Jose Luis

    (@jose64)

    Hola.

    Le hice una pequeña modificación, ahora si funciona correctamente

    <?php
    //creas un objeto de la clase fecha con la fecha de ahora, con la hora tambien
    $fecha1 = new DateTime(date('Y-m-d H:i:s'));
     
    //creas otro objeto con la fecha con la que quieres calcular si la diferencia es de un dia o mas
    $fecha2 = new DateTime('2020-09-23 00:29:24');
     
    //calculamos la diferencia entre las fechas con la funcion diff que nos devuelve otro objeto
    $resta = $fecha2->diff($fecha1);
     
    //para tu caso usaremos la diferencia en dias que se encuentra en la propiedad $resta->d
    // años estaria en $resta->y, horas en $resta->h, estan todos los datos
    // si $resta->d es mayor o igual a 1
    $cont=296;
    
    if ($resta->format('%a') >= 1){
      //codigo para actualizar el contador
    $cont = $cont + $resta->format('%a');
    }
    echo "Edición N°: ", $cont
    ?>

    Tienes la información en el manual de referencia de PHP:

    Manual de PHP > Referencia de funciones > Extensiones relacionadas con fecha y hora > Fecha/Hora > DateInterval

    Comenta si tienes alguna duda y, por favor, recuerda cerrar el debate, así nos ayudas a mantener el foro al día.

    Iniciador del debate carmigh

    (@carmigh)

    Hola Jose Luis!! Impecable tu código, ya estoy viendo PHP y las referencias que me pasaste.
    Gracias!!

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.