Dire che ho una stringa in arrivo, "2007-02-28"
, qual è il codice più semplice che potrei scrivere per trasformarlo in "2007-03-01"
? In questo momento sto usando solo strtotime()
, quindi aggiungo 24*60*60
, quindi usando date()
, ma mi chiedo solo se c'è un modo più pulito, più semplice o più intelligente di farlo.Il modo più semplice per incrementare una data in PHP?
risposta
Un modo pulito è utilizzare strtotime()
$date = strtotime("+1 day", strtotime("2007-02-28"));
echo date("Y-m-d", $date);
vi darà il 2007-03-01
È più pulito e più semplice per aggiungere 86400. :)
Il modo più high-tech è quello di fare:
$date = new DateTime($input_date);
$date->modify('+1 day');
echo $date->format('Y-m-d');
ma questo è davvero solo lontanamente utile se si sta facendo, per esempio, una sequenza di trasformazioni alla data, piuttosto che trovare solo il domani.
Si può fare l'aggiunta proprio all'interno strtotime, per esempio
$today="2007-02-28";
$nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));
Oh, pulito. Non lo sapevo. È quasi come il buon vecchio Date :: Manip. – chaos
Un altro modo è utilizzare la funzione mktime(). E 'funzione molto utile ...
$date = "2007-02-28";
list($y,$m,$d)=explode('-',$date);
$date2 = Date("Y-m-d", mktime(0,0,0,$m,$d+1,$y));
ma credo strtotime()
è meglio in quella situazione ...
nice, non mi rendevo conto che mktime() avrebbe incrementato il mese in questo modo quando andassi su –
Il modo più semplice ...
echo date('Y-m-d',strtotime("+1 day")); //from today
O dalla data specificata .. .
echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
$early_start_date = date2sql($_POST['early_leave_date']);
$date = new DateTime($early_start_date);
$date->modify('+1 day');
$date_a = new DateTime($early_start_date . ' ' . $_POST['start_hr'] . ':' . $_POST['start_mm']);
$date_b = new DateTime($date->format('Y-m-d') . ' ' . $_POST['end_hr'] . ':' . $_POST['end_mm']);
$interval = date_diff($date_a, $date_b);
Hel Lo si può provare questo qui di seguito, soprattutto se siete francese
$date = date('l j F Y');
#increment the date
$date2 = date('l j F Y', strtotime("+7 day"));
di tradurre in francese è possibile utilizzare la funzione di setlocale() o la funzione qui sotto:
function fr_date($date){
$date = explode(' ', $date);
$date = str_replace('Monday','Lundi',$date);
$date = str_replace('Tuesday','Mardi',$date);
$date = str_replace('Wednesday','Mercredi',$date);
$date = str_replace('Thursday','Jeudi',$date);
$date = str_replace('Friday','Vendredi',$date);
$date = str_replace('Saturday','Samedi',$date);
$date = str_replace('Sunday','Dimanche',$date);
$date = str_replace('January','Janvier',$date);
$date = str_replace('February','Février',$date);
$date = str_replace('March','Mars',$date);
$date = str_replace('April','Avril',$date);
$date = str_replace('May','Mai',$date);
$date = str_replace('June','Juin',$date);
$date = str_replace('July','Juillet',$date);
$date = str_replace('August','Août',$date);
$date = str_replace('September','Septembre',$date);
$date = str_replace('October','Octobre',$date);
$date = str_replace('November','Novembre',$date);
$date = str_replace('December','Décembre',$date);
$date = implode(' ',$date);
return $date;
}
$your_date = strtotime("1month", strtotime(date("Y-m-d")));
$new_date = date("Y-m-d", $your_date++);
/("1month") = aumenterà di mese in mese. // ("1 giorno") = incrementerà di giorno. // (data ("Y-m-d")) = inizia ad incrementare la data sulla tua data attuale. –
È necessario modificare la risposta per includere la spiegazione del codice, anziché avere la spiegazione in un commento. – astidham2003
- 1. modo più semplice per analizzare una data in Javascript
- 2. PHP: il modo più semplice per ottenere la data del mese 6 mesi prima del primo?
- 3. Il modo più semplice per creare una cometa chat
- 4. Un modo semplice per incrementare le variabili private?
- 5. Qual è il modo più semplice per sottrarre un mese da una data in Python?
- 6. Il modo migliore per incrementare l'intero in arrayList in Java
- 7. Come incrementare una stringa alfanumerica in PHP?
- 8. Il modo più semplice per disegnare un'immagine?
- 9. PHP: il modo più semplice per eliminare una cartella (incluso il suo contenuto)
- 10. Qual è il modo più conciso per incrementare una variabile di tipo Short in Scala?
- 11. il modo più semplice per incorporare Perl in html
- 12. Come incrementare il nome file in php per evitare duplicati
- 13. Il modo più semplice per rilevare un dispositivo mobile
- 14. Qual è il modo più semplice per utilizzare il comando HEAD di HTTP in PHP?
- 15. Modo più semplice per aggiungere il cookie/variabile XDEBUG_SESSION_START?
- 16. Il modo più semplice per risolvere equazioni matematiche in Python
- 17. Il modo più semplice per convertire in booleano
- 18. Il modo più semplice per chiamare più AuthenticationSuccessHandlers?
- 19. Il modo più semplice per eliminare NULL in SELECT DISTINCT?
- 20. Il modo più semplice per implodere() un array bidimensionale?
- 21. Il modo più semplice per forzare un arresto in Swift
- 22. Il modo più semplice per confrontare gli array in C#
- 23. Il modo più semplice per leggere l'input formattato in C++?
- 24. il modo più semplice e più breve per contare le lettere maiuscole in una stringa con php?
- 25. Il modo più semplice per acquisire file di file remoto in PHP?
- 26. Il modo più semplice per rm -rf in Python
- 27. Il modo più semplice per sommare due elenchi in Scala?
- 28. Il modo più semplice per analizzare JSON in Qt 4.7
- 29. Il modo più semplice per trasformare la raccolta in array?
- 30. Il modo più semplice per scambiare due file in bash
Stupido CentOS ha solo PHP 5.1 e DateTime è introdotto in 5.2. Credo che finalmente dovrò aggiornare a un pacchetto di centos php non ufficiale. – davr
Er, no. L'aggiunta di 86400 è una falsa semplicità. – staticsan
Puoi spiegare cosa intendi con questo? – chaos