Eu tenho uma data PHP na forma de 2013-01-22
e quero obter a data de amanhã no mesmo formato, por exemplo 2013-01-23
.
Como isso é possível com PHP?
Use DateTime
$datetime = new DateTime('tomorrow');
echo $datetime->format('Y-m-d H:i:s');
Ou:
$datetime = new DateTime('2013-01-22');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');
Ou:
$datetime = new DateTime('2013-01-22');
$datetime->add(new DateInterval("P1D"));
echo $datetime->format('Y-m-d H:i:s');
Ou em PHP 5.4+:
echo (new DateTime('2013-01-22'))->add(new DateInterval("P1D"))
->format('Y-m-d H:i:s');
ou
Link de ajuda: STRTOTIME ()
fonte
Já que você marcou isto com strtotime, você pode usá-lo com o
+1 day
modificador assim:Dito isso, é uma solução muito melhor usar DateTime .
fonte
fonte
echo date ('Y-m-d',strtotime('+1 day', strtotime($your_date)));
fonte
Use
DateTime
:Para obter amanhã a partir de agora:
Para obter amanhã de um encontro:
Espero que ajude!
fonte
fonte
Por estranho que pareça que funciona perfeitamente bem:
date_create( '2016-02-01 + 1 day' );
echo date_create( $your_date . ' + 1 day' )->format( 'Y-m-d' );
Deveria fazer isso
fonte
Primeiro, chegar a abstrações corretas é sempre uma chave. chave para legibilidade, manutenção e extensão.
Aqui, o candidato bastante óbvio é um
ISO8601DateTime
. Existem pelo menos duas implementações: a primeira é uma data e hora analisada a partir de uma string e a segunda é amanhã. Portanto, existem duas classes que podem ser usadas, e sua combinação resulta no resultado (quase) desejado:Ambos os objetos têm uma data e hora ISO8601, portanto, sua representação textual não é exatamente o que você precisa. Portanto, o golpe final é fazê-los assumir a forma de uma data:
Visto que você precisa de uma representação textual, não apenas de um objeto, você invoca um
value()
método.Para saber mais sobre essa abordagem, dê uma olhada neste post .
fonte
aqui está a função de trabalho
fonte
Onde 86400 é o número de segundos em um dia.
fonte