Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fiz uma certa gambiarra pra que isso não aconteça mais.
Queria saber se existe alguma forma de saber o número do mês passado e do mês seguinte mantendo o 0 a esquerda.
Estou usando date('m') -1, mas o resultado retornado vem sem o 0.
quero formar a data
hoje/mes_passado/esse_ano
echo date('d') . '/' . date('m')-1 . '/' . date('Y')
O problema é que fica retornando
11/2/2011
como falei, eu fiz uma gambiarrinha pra concatenar o 0 quando (date('m')-1) <10
mas preferiria descobrir um método melhor
hehe eu tbm faria por gambiarra viu hehe
Ou entao faria uma formatação da função date()
Não deixem de consultar o manual do PHP http://www.php.net/manual/pt_BR/
Passei pelo mesmo problema e achei esta solução lá...
Boa sorte!
pra manter o zero , você pode usar substr .. , mais o propio date('m') , ja ia retornar um zero .. caso for , 0,1,2,3,4,5,6,7,8,9 a data .. você queria que se foçe 10 , 11 , 12
retornase 010 ?
>
Não deixem de consultar o manual do PHP http://www.php.net/manual/pt_BR/
Passei pelo mesmo problema e achei esta solução lá...
Boa sorte!
Eu consultei o php.net mas a única coisa que achei foi
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
No arquivo da função date().
Como tu fez pra encontrar isso no php.net?
>
pra manter o zero , você pode usar substr .. , mais o propio date('m') , ja ia retornar um zero .. caso for , 0,1,2,3,4,5,6,7,8,9 a data .. você queria que se foçe 10 , 11 , 12
retornase 010 ?
Não não Andrey.
O que acontece é que o resultado de date('m') é :
01,02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12
Provavelmente por esse resultado ser uma string (to expeculando) se eu fizer 03 -1 o tipo muda pra inteiro e ignora o 0 a esquerda
dae o retorno fica 2. Como eu to formando a data com date('d') / date('m') -1 / date('Y') eu ia ter algo como 11/2/2011 invés de 11/02/2011.
Pra ser mais eficiente, a solução do Roman funcionou perfeitamente...
Olha este link que fala sobre a função strtotime (http://br.php.net/manual/pt_BR/function.strtotime.php), neste link é utilizado a função date() com strtotime(), mas não atendia o meu problema. Então utilizei a função strftime (http://br.php.net/manual/pt_BR/function.strftime.php) em alguns casos específicos no lugar do date().
Eu me expressei mal, eu estudei o manual PHP para ter essa idéia.
Você também pode usar:
$data = date("d/m/Y", strtotime("-1 Month"));
\O .. parabems .. mais se o caso era tirar o zero dali ..
basta tu da um str_replace pro formato de data com substr .. vai dar no mesmo :P :huh:
$data_a = date("m");
$nv_data = date("d/").str_replace("0","",substr($data_a,0,2)).'/'.date("Y");
echo $nv_data;
Saida
11/3/2011
:P
>
\O .. parabems .. mais se o caso era tirar o zero dali ..
basta tu da um str_replace pro formato de data com substr .. vai dar no mesmo :P :huh:
$data_a = date("m");
$nv_data = date("d/").str_replace("0","",substr($data_a,0,2)).'/'.date("Y");
echo $nv_data;
Saida
11/3/2011
:P
Andrey,
1 - A intenção não era tirar o zero dali, e sim conseguir representar o mês anterior, ou seja, mes atual - 1, sem que fosse perdido o '0', ou seja, meses: 01,02,03...
2 - Se tu analisar a tua solução ela desperdiça algum recurso fazendo atribuições, utilizando funções, concatenando e etc... Procurava algo como o roma indicou, mais apropriado a esse tipo de situação que deve ser recorrente já...
Agradeço a ajuda mesmo assim, abraço...
mktime também resolve
echo date('d/m/Y',mktime(0,0,0,date('m')+1,date('d'),date('Y')));
Abraços.
>
mktime também resolve
echo date('d/m/Y',mktime(0,0,0,date('m')+1,date('d'),date('Y')));
Abraços.
Boa, valeu também, cheguei a usar a mktime, mas não cheguei a usar ela como parametro da date...
Então podemos ter:
$mes_anterior = date('m', ,mktime(0,0,0,date('m')-1,0,0));
$mes_anterior = date('m', strtotime('-1 Month'));
$mes_anterior = strftime('%m', strtotime('-1 Month'));
Só não testei a do Periscuelo...
Olá Djonatan Buss,
use esta função para retornar o mês passado:
$data = strftime("%d/%m/%Y", strtotime("-1 Month"));