2013-04-15 12 views
38
<?php 
    $date = "04-15-2013"; 
    $date = strtotime($date); 
    $date = strtotime("+1 day", $date); 
    echo date('m-d-Y', $date); 
?> 

Questo mi sta facendo impazzire e sembra così semplice. Sono piuttosto nuovo di PHP, ma non riesco a capirlo. L'eco restituisce 01-01-1970.PHP - aggiungi il formato da 1 giorno a data mm-gg-aaaa

Il giorno $ arriverà da un POST nel formato m-d-Y, ho bisogno di aggiungere un giorno e averlo come una nuova variabile da utilizzare in seguito.

Devo convertire $ date in Y-m-d, aggiungere 1 giorno, quindi riconvertire in m-d-Y? Sarebbe meglio imparare a usare DateTime?

+0

Se la data sarà venuta in da un 'POST', allora probabilmente stai meglio usare' $ domani = data ('MD-Y', strtotime ("+ 1 giorno")); ' (La risposta di Fabio) e '$ tomorrow = $ _POST [$ domani];' nel tuo script di raccolta dei dati. –

risposta

87

ci si va

$date = "04-15-2013"; 
$date1 = str_replace('-', '/', $date); 
$tomorrow = date('m-d-Y',strtotime($date1 . "+1 days")); 

echo $tomorrow; 

questa volontà di uscita

04-16-2013 

documentazione sia per la funzione
date
strtotime

+0

Perfetto! Non sapevo che non avrebbe riconosciuto '-'. Non ho alcun problema cambiando tutto in "/". Grazie! – Jayr

+0

benvenuto uomo;) – Fabio

1

Il formato che hai usato non è riconosciuto da strtotime(). Sostituire

$date = "04-15-2013"; 

da

$date = "04/15/2013"; 

Oppure, se si desidera utilizzare - quindi utilizzare la seguente riga con l'anno di fronte:

$date = "2013-04-15"; 
45
$date = DateTime::createFromFormat('m-d-Y', '04-15-2013'); 
$date->modify('+1 day'); 
echo $date->format('m-d-Y'); 

See it in action

O in PHP 5.4+

echo (DateTime::createFromFormat('m-d-Y', '04-15-2013'))->modify('+1 day')->format('m-d-Y'); 

riferimento

+0

Buona risposta! thx – hek2mgl

+1

OP dovrei aver guardato questo ;-) –

+0

+ Numero 13 segnalazioni Cap'n –

0

In realtà volevo la stessa cosa allo stesso modo, Per ottenere una data di un anno a ritroso, per una data specifica! :-)

Con l'accenno di risposta di cui sopra da mohsenipur @mohammad ho avuto modo seguente link, tramite il suo determinato link!

Fortunatamente, esiste un metodo analogo al metodo date_add, denominato metodo date_sub! :-) Faccio quanto segue per ottenere ciò che volevo!

$date = date_create('2000-01-01'); 
date_sub($date, date_interval_create_from_date_string('1 years')); 
echo date_format($date, 'Y-m-d'); 

Speranze che questa risposta possa aiutare anche qualcuno! :-)

Buona fortuna ragazzi!

4
$date = strtotime("+1 day"); 
echo date('m-d-y',$date);