rpmartins 0 Denunciar post Postado Junho 2, 2008 Como proceder para pegar o dia anterior, exemplo: 2008-06-01 para 2008-05-31 Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Aleixo 1 Denunciar post Postado Junho 2, 2008 que tal essa gambiarra!!! heheh CODE <?$ano = date("y"); $mes = date("m"); $dia = date("d")-1; $ontem = "$ano/$mes/$dia"; print $ontem; ?> Compartilhar este post Link para o post Compartilhar em outros sites
rpmartins 0 Denunciar post Postado Junho 2, 2008 veja que desse jeito não mudaria o mes Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Junho 2, 2008 Coloque o -1 no mes também. Compartilhar este post Link para o post Compartilhar em outros sites
Marcelo Sabdini 0 Denunciar post Postado Junho 2, 2008 Alaerte, desta forma, se ele rodar isso no dia 1/1/2009, não vai aparecer 31/12/2008 sacou??? use assim: $ontem = date("Y-m-d", mktime(0,0,0, date("m"), date("d")-1, date("y"))); Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Junho 2, 2008 Alaerte, desta forma, se ele rodar isso no dia 1/1/2009, não vai aparecer 31/12/2008 sacou???Vixi, é verdade nem reparei... valeu. Compartilhar este post Link para o post Compartilhar em outros sites
Paulo André 0 Denunciar post Postado Junho 3, 2008 Um pouco mais simples: echo date("Y-m-d", strtotime("-1 day")); []'s Compartilhar este post Link para o post Compartilhar em outros sites
rpmartins 0 Denunciar post Postado Junho 3, 2008 Utilizando o exemplo: echo date("".$_POST["ano"]."-".$_POST["mes"]."-$dia", mktime(0,0,0, date("m"), date("d")-1, date("y"))); o resultado foi: 2008-05-31 No exemplo: echo date("".$_POST["ano"]."-".$_POST["mes"]."-$dia", strtotime("-1 day")); o resultado foi: 2008-05-31 Na situação, eu tenho um loop onde $dia irá incrementando conforme os números do mes consultado, por exemplo, a pessoa quer listar um extrato do caixa do mês de maio/2008, a rotina consiste em pegar a quantidade de dias neste mes/ano e lista os valores em cada linha da tabela, acontece que na listagem deve aparecer o saldo inicial do dia, este consiste em ser o caixa do dia anterior, aí que entra a necessidade de pegar o dia anterior. Ainda nao consegui descobrir o porque de só aparecer o dia 31/05/2008. Os exemplos que me passaram funciona corretamente, porém quando monto a data com o $_POST fica com esse valor. Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Junho 3, 2008 Usando $_POST: $diaanterior = date("Y-m-d", mktime(0,0,0, (int)$_POST['mes'], -1, (int)$_POST['ano'])); Isso vai mostrar o último dia do mês anterior ao mês inserido pelo usuário... Se ele colocar Abril de 2008, vai mostrar 2009-03-31. Se ele colocar Março de 2008, vai mostrar 2009-02-28. E assim por diante... Compartilhar este post Link para o post Compartilhar em outros sites
rpmartins 0 Denunciar post Postado Junho 3, 2008 Ainda não foi dessa vez, o retorno está exibindo 2008-04-29 Vou sintetizar o código que estou utilizando: // pego a qtde de dias que tem no mes para orientar o FOR $diasdomes = cal_days_in_month(CAL_GREGORIAN, $_POST["mes"], $_POST["ano"]); for ($i=1; $i <= $diasdomes; $i++) { // Verificando se o dia tem apenas 1 dígito if ($i <= 9) { $dia = "0$i"; } else { $dia = $i; } echo "Dia atual: ".$_POST["ano"]."-".$_POST["mes"]."-$dia <br />"; } O que eu preciso basicamente seria isso echo "Dia atual: ".$_POST["ano"]."-".$_POST["mes"]."-$dia / Dia anterior (DIA ANTERIOR)<br />"; Assim no mysql eu conseguiria pegar as informacoes do caixa anterior para exibir como saldo inicial Basicamente a tabela mostra isso: DATA | SALDO_INICIAL | RECEITA | DESPESA | SALDO_FINAL Funciona todas as colunas com exceção da SALDO_INICIAL que é onde devo pegar com uma consulta no mysql. Para entender melhor, a coluna SALDO_INICIAL do dia 2008-06-03 é o SALDO_FINAL de 2008-06-02 Compartilhar este post Link para o post Compartilhar em outros sites
rpmartins 0 Denunciar post Postado Junho 3, 2008 RESOLVIDO... Fiz da seguinte forma usando o conceito inicial que o Marcelo Sabdini indicou $ontem = date("Y-m-d", mktime(0,0,0, date("m"), date("d")-1, date("y"))); Funcionou o abaixo $dia2 = mktime (0, 0, 0, date("".$_POST['mes']."") , date("$dia")-1, date("".$_POST['ano']."")); $dia_anterior = date('Y-m-d', $dia2); Obrigado pela ajuda de todos. Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Junho 3, 2008 Cara... Não precisa colocar esses valores dentro da função date().. Pode fazer assim: $dia2 = mktime (0, 0, 0, $_POST['mes'], $dia-1, $_POST['ano']); Compartilhar este post Link para o post Compartilhar em outros sites
rpmartins 0 Denunciar post Postado Junho 3, 2008 Funcionou também. Quanto mais simplificado melhor :) Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Junho 5, 2008 Quanto mais simplificado melhor :)Tome cuidado com estas práticas: o PHP possui funções pra manipular datas, e manipular datas usando funções inidequadas é muito sucetível a falhas. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites