Aumentare i giorni di php Data corrente()

Come faccio ad aggiungere un certo numero di giorni per la data corrente in PHP?

Ho già avuto la data corrente con:

$today = date('y:m:d');

Solo bisogno di aggiungere un numero x di giorni a

InformationsquelleAutor | 2008-11-10



10 Replies
  1. 94

    php supporta il linguaggio c funzioni di data. È possibile aggiungere o sottrarre data-periodi di lingua inglese di stile frasi via il strtotime funzione. esempi…

    $Today=date('y:m:d');
    
    //add 3 days to date
    $NewDate=Date('y:m:d', strtotime("+3 days"));
    
    //subtract 3 days from date
    $NewDate=Date('y:m:d', strtotime("-3 days"));
    
    //PHP returns last sunday's date
    $NewDate=Date('y:m:d', strtotime("Last Sunday"));
    
    //One week from last sunday
    $NewDate=Date('y:m:d', strtotime("+7 days Last Sunday"));

    o

    <select id="date_list" class="form-control" style="width:100%;">
    <?php
    $max_dates = 15;
    $countDates = 0;
    while ($countDates < $max_dates) {
        $NewDate=Date('F d, Y', strtotime("+".$countDates." days"));
        echo "<option>" . $NewDate . "</option>";
        $countDates += 1;
    }
    ?>

    • utilizzando la funzione strtotime() la funzione è molto costoso e sarebbe enorme esagerazione se si desidera aggiungere un paio di giorni.
    • Suona come prematura di ottimizzazione. Se non è in un momento critico pezzo di codice, e non abbiamo motivo di pensare è, la masterizzazione di un paio di millisecondi è nulla rispetto al costo di un programmatore tempo.
  2. 20

    un giorno è 86400 secondi.

    $tomorrow = date('y:m:d', time() + 86400);
    • Anche se, per motivi di leggibilità si shoudn non utilizzare l’Intero ovunque come-è. definire un const da qualche parte o utilizzare 60 * 60 * 24 quindi la sua è chiaro qual è il numero che rappresenta.
    • io uso 86400 così spesso che è più ovvio per me, ora come è che c’è 60 secondi in un minuto :). Se io sto facendo un sacco di funzioni di tempo, allora sì, io spesso dichiarare una costante.
    • Non tutti i giorni è 86400 secondi 🙂 luce del Giorno, il risparmio…
    • questo va bene quando sei l’unico a mantenere il tuo codice, ma di solito non ci sono altre persone che la visualizzazione di esso pure. Se non ora, poi magari in futuro non ci sarà…
  3. 11

    Il modo più semplice per aggiungere x no. di giorni..

    echo date('Y-m-d',strtotime("+1 day"));    //+1 day from today

    O dalla data specificata…

    echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
  4. 7

    Il date_add() funzione dovrebbe fare quello che vuoi. Inoltre, controllare i documenti (non ufficiale, ma quelli ufficiali sono un po ‘ sparse), per il DateTime oggetto, è molto più bello di lavorare con la procedurale le funzioni in PHP.

  5. 7

    Con php 5.3

        $date = new DateTime();
        $interval = new DateInterval('P1D');
        echo $date->format('Y-m-d') , PHP_EOL;
        $date->add($interval);
        echo $date->format('Y-m-d'), PHP_EOL;
        $date->add($interval);
        echo $date->format('Y-m-d'), PHP_EOL;

    uscita

    2012-12-24

    2012-12-25

    2012-12-26

  6. 2

    Se avete bisogno di questo codice in luoghi diversi, quindi suggerisco di aggiungere una breve funzione per mantenere il codice più semplice e più facile di testare.

    function add_days( $days, $from_date = null ) {
        if ( is_numeric( $from_date ) ) { 
            $new_date = $from_date; 
        } else { 
            $new_date = time();
        }
    
        //Timestamp is the number of seconds since an event in the past
        //To increate the value by one day we have to add 86400 seconds to the value
        //86400 = 24h * 60m * 60s
        $new_date += $days * 86400;
    
        return $new_date;
    }

    Quindi si può usare ovunque, come questo:

    $today       = add_days( 0 );
    $tomorrow    = add_days( 1 );
    $yesterday   = add_days( -1 );
    $in_36_hours = add_days( 1.5 );
    
    $first_reminder  = add_days( 10 );
    $second_reminder = add_days( 5, $first_reminder );
    $last_reminder   = add_days( 3, $second_reminder );
  7. 0

    Aggiungere 15 giorni a un elemento di selezione (utilizzo di “Vivo per Morire” suggerimento)

    <select id="date_list" class="form-control" style="width:100%;">
    <?php
    $max_dates = 15;
    $countDates = 0;
    while ($countDates < $max_dates) {
        $NewDate=Date('F d, Y', strtotime("+".$countDates." days"));
        echo "<option>" . $NewDate . "</option>";
        $countDates += 1;
    }
    ?>

  8. 0

    $NewTime = mktime(date('G'), date('i'), date('s'), date('n'), date('j') + $DaysToAdd, date('Y'));

    Da mktime documentazione:

    mktime() è utile per la data di aritmetica e di convalida, come si calcolerà automaticamente il valore corretto per al di fuori del range di ingresso.

    Il vantaggio di questo metodo è che è possibile aggiungere o sottrarre qualsiasi intervallo di tempo (ore, minuti, secondi, giorni, mesi, o anni) in un facile leggere la riga di codice.

    Attenzione c’è un compromesso in termini di prestazioni, questo codice è di circa 2,5 x più lento di strtotime(“+1 giorno”) a causa di tutte le chiamate alla funzione date (). Considerazione la possibilità di ri-utilizzo di tali valori se sono in un loop.

  9. -2
    <?php
    $dt = new DateTime;
    if(isset($_GET['year']) && isset($_GET['week'])) {
        $dt->setISODate($_GET['year'], $_GET['week']);
    } else {
        $dt->setISODate($dt->format('o'), $dt->format('W'));
    }
    $year = $dt->format('o');
    $week = $dt->format('W');
    ?>
    
    <a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week-1).'&year='.$year; ?>">Pre Week</a> 
    <a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week+1).'&year='.$year; ?>">Next Week</a>
    <table width="100%" style="height: 75px; border: 1px solid #00A2FF;">
    <tr>
    <td style="display: table-cell;
        vertical-align: middle;
        cursor: pointer;
        width: 75px;
        height: 75px;
        border: 4px solid #00A2FF;
        border-radius: 50%;">Employee</td>
    <?php
    do {
        echo "<td>" . $dt->format('M') . "<br>" . $dt->format('d M Y') . "</td>\n";
        $dt->modify('+1 day');
    } while ($week == $dt->format('W'));
    ?>
    </tr>
    </table>

Lascia un commento