pesquise usando nomes de tags com colchetes ao redor deles, por exemplo, [php] [date] addna caixa de pesquisa. Você encontrará muitas respostas para perguntas como esta.
Mikel
Respostas:
247
Isso deve ser
echo date('Y-m-d', strtotime("+30 days"));
strtotime
espera receber uma string contendo um formato de data em inglês dos EUA e tentará analisar esse formato em um carimbo de data / hora do Unix (o número de segundos desde 1 de janeiro de 1970 00:00:00 UTC), relativo ao carimbo de data / hora fornecido agora ou o hora atual, se agora não for fornecido.
enquanto date
Retorna uma string formatada de acordo com a string de formato especificada usando o carimbo de data / hora inteiro especificado ou a hora atual se nenhum carimbo de data / hora for fornecido.
Acho que isso causará problemas ao cruzar o horário de verão e outros itens engraçados do calendário. Depende do contexto. Você precisa pensar se está procurando 30 blocos de 24 horas, que, ao atravessar um dia de horário de verão, podem colocá-lo às 23h.
JJ Rohrer 23/07
1
@JJRohrer não, não vai. strtotimelevará em consideração qualquer horário de verão para o fuso horário configurado. DST é apenas um problema quando você faz algo como isso OP: stackoverflow.com/questions/4066035
Gordon
Ponto tomado. Cheguei a esta pergunta tentando resolver algo um pouco mais próximo da pergunta que você referenciava. Espero que meu comentário acima faça com que outras pessoas pensem em levar a sério seus cálculos de datas - é fácil esquecer todas as exceções.
JJ Rohrer
64
Este pode ser bom
function addDayswithdate($date,$days){
$date = strtotime("+".$days." days", strtotime($date));return date("Y-m-d", $date);}
A solução acima pode ser compactada em uma linha também se você precisar de uma solução rápida e não desejar criar uma função. data do eco ("Ymd", strtotime ("+ 12 dias", strtotime (20130101))))
Este método trata do cruzamento do horário de verão. Não tenho certeza se o php é responsável por outras peculiaridades de tempo, como segundos bissextos, mas, dependendo de suas necessidades, provavelmente é melhor usar DateTime vs. StrToTime se estiver lidando com dias corridos.
JJ Rohrer
@chx Essa solução também permite uma data mais cuidadosa; por exemplo, novo DateTime ('2016-12-09 10:35:58'); que é proveniente de um carimbo de data / hora do banco de dados ...
Você também pode adicionar assim, se desejar a data 5 dias a partir de uma data específica:
Você tem uma variável com uma data como esta (obtida de uma entrada ou banco de dados ou apenas codificada):
$today ="2015-06-15";// Or can put $today = date ("Y-m-d");
$fiveDays = date ("Y-m-d", strtotime ($today ."+5 days"));
echo $fiveDays;// Will output 2015-06-20
Você pode usar a classe DateTime criada em PHP. Possui um método chamado "add", e como ele é usado é demonstrado detalhadamente no manual: http://www.php.net/manual/en/datetime.add.php
[php] [date] add
na caixa de pesquisa. Você encontrará muitas respostas para perguntas como esta.Respostas:
Isso deve ser
strtotime
enquanto
date
Consulte as páginas de manual para
e suas assinaturas de função.
fonte
strtotime
levará em consideração qualquer horário de verão para o fuso horário configurado. DST é apenas um problema quando você faz algo como isso OP: stackoverflow.com/questions/4066035Este pode ser bom
fonte
ou
print date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d") + 7, date("Y"));
fonte
fonte
Você também pode adicionar assim, se desejar a data 5 dias a partir de uma data específica:
Você tem uma variável com uma data como esta (obtida de uma entrada ou banco de dados ou apenas codificada):
fonte
Lembre-se de que a alteração do relógio muda por causa do horário de verão pode causar alguns problemas ao calcular apenas os dias.
Aqui está uma pequena função php que cuida disso:
fonte
Você também pode tentar:
$date->modify("+30 days");
fonte
Você pode fazer isso manipulando o timecode ou usando strtotime () . Aqui está um exemplo usando strtotime.
fonte
Você pode usar strtotime ()
$data['created'] = date('Y-m-d H:m:s', strtotime('+1 week'));
fonte
Eu sei que essa é uma pergunta antiga, mas para o PHP <5.3 você pode tentar o seguinte:
fonte
Você pode usar a classe DateTime criada em PHP. Possui um método chamado "add", e como ele é usado é demonstrado detalhadamente no manual: http://www.php.net/manual/en/datetime.add.php
No entanto, requer o PHP 5.3.0.
fonte
fonte
Você pode tentar isso.
fonte
Simples e Melhor
Tente isto
fonte
fonte
Use esta função addDate () para adicionar ou subtrair dias, meses ou anos (você precisará da função auxiliar reformatDate () também)
Nota: apenas para php> = 5.3
fonte
Use o seguinte código.
A referência foi encontrada aqui - Como adicionar dias à data atual no PHP
fonte
fonte
Embora essa seja uma pergunta antiga, essa maneira de fazê-lo levaria muitas situações e parece robusta. Você precisa ter o PHP 5.3.0 ou superior.
Você pode ter qualquer tipo de formato para a sequência de datas e isso funcionaria.
fonte