No sé cómo explicar esto correctamente, sino sólo algunos de ejemplo para los chicos, de modo que usted puede conseguir realmente lo que estoy tratando de decir.

Hoy es 09 de abril de 2010

7 días a partir de ahora, es de abril de 16,2010

Estoy buscando un código php, que me puede dar la fecha exacta de dar el número de días de intervalo antes de la fecha actual.

He estado buscando un hilo que puede resolver, o incluso dar una sugerencia sobre cómo resolver este pero yo no he encontrado ninguna.

Este podría posiblemente ser reformulado como “quiero agregar $x número de días a una fecha determinada”?
Tu pregunta no es clara. Puede que vuelva a especificar cuáles son los parámetros conocidos y qué valores te interesa?

OriginalEl autor Sanjay Khatri | 2010-04-09

6 Comentarios

  1. 25

    Si está usando PHP >= 5.2, sugiero fuertemente que usted utilice el nuevo objeto DateTime, lo que hace que trabajar con fechas mucho más fácil:

    <?php
    $date = new DateTime("2006-12-12");
    $date->modify("+7 day");
    echo $date->format("Y-m-d");
    ?>
    gran respuesta, me ayuda mucho
    o para un 1 liner echo date_create("2006-12-12")->modify("+7 day")->format("Y-m-d");

    OriginalEl autor ChrisR

  2. 9

    Echar un vistazo aquí – http://php.net/manual/en/function.strtotime.php

    <?php
    //This is what you need for future date from now.
    echo date('Y-m-d H:i:s', strtotime("+7 day"));
    
    //This is what you need for future date from specific date.
    echo date('Y-m-d H:i:s', strtotime('01/01/2010 +7 day'));
    ?>
    +1. Puede que no quieras echo strtotime(...). En su lugar, utilice el valor devuelto dentro de la fecha de la función, tales como echo date('Y-m-d H:i:s', strtotime('-7 days')).

    OriginalEl autor Ivo Sabev

  3. 5

    Aceptado la respuesta no está mal pero no es la mejor solución:

    La DateTime la clase tiene una cadena opcional en el constructor, que puede definir la misma lógica que el modificar método.

    <?php
    $date = new DateTime("+7 day");

    Por ejemplo:

    <?php
    namespace DateTimeExample;
    
    $now = new \DateTime("now");
    $inOneWeek = new \DateTime("+7 day");
    
    printf("Now it's the %s", $now->format('Y-m-d'));
    printf("In one week it's the %s", $inOneWeek->format('Y-m-d'));

    Para una lista de relación de formatos (por el constructor de DateTime) echa un vistazo a http://php.net/manual/de/datetime.formats.relative.php

    OriginalEl autor Mischa

  4. 2

    Usted tendrá que buscar en strtotime(). Me imagino su final código sería algo como esto:

    $future_date = "April 16,2010";
    $seconds = strtotime($future_date) - time();
    $days = $seconds /(60 * 60* 24);
    echo $days; //Returns "6.0212962962963"
    “6.0212962962963” – clásico ejemplo de PHP flotante de precisión problema 🙂
    No realmente, el exacto número de días que se representa como un decimal.

    OriginalEl autor Sam152

  5. 1

    Si está usando PHP >= 5.3, esto podría ser una opción.

    <?php
    $date = new DateTime( "2006-12-12" );
    $date->add( new DateInterval( "P7D" ) );
    ?>

    OriginalEl autor Dan

  6. 0

    Puede utilizar la función mktime con la fecha. (http://php.net/manual/en/function.date.php)

    Fecha le da la fecha actual. Esto es mejor que simplemente sumar/restar a una marca de tiempo, ya que puede tomar en cuenta el horario de verano.

    <?php
    # this gets you 7 days earlier than the current date
    $lastWeek = mktime(0, 0, 0, date("m")  , date("d")-7, date("Y"));
    # now pretty-print it out (eg, prints April 2, 2010.)
    echo date("F j, Y.", $lastWeek), "\n";
    ?>

    OriginalEl autor Daniel G

Dejar respuesta

Please enter your comment!
Please enter your name here