Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 Bom dia pessoal do imaster, tudo bom? Seguinte galera, to com um probleminha aqui... Estou tentando pegar a data atual e subtrair ela por 5 dias. assim // Pegando a data de hoje $hoje = date('Y-m-d'); // Contando a data de hoje mais 5 dias $prazo = strtotime('-5 days'); $prazo_2 = date('Y-m-d', $prazo); $resultado = $hoje - $prazo_2; echo $resultado_2 = date('Y-m-d', $resultado); só que ele me retorna esta data. 1970-01-01 alguém sabe me dizer pq? Estou desenvolvendo um sistema financeiro, onde ele tem que acusar a data de vencimento 5 dias antes de vencer. Alguém pode me ajudar? Valew galera.. abraço! Compartilhar este post Link para o post Compartilhar em outros sites
lucasao 5 Denunciar post Postado Fevereiro 10, 2011 <? echo date("d/m/Y", mktime (0, 0, 0, date("m"), date("d")-5, date("Y"))); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 lucasao Valew pela resposta, essa deu certo e trouxe o resultado de 5 dias antes. Só outra dúvida, e se eu quisesse trazer 5 dias antes de uma data no bando de dados. por ex: $dados['data_vencimento_1']; como usaria essa variáel nesta fórmula que passou ? Abçs. Compartilhar este post Link para o post Compartilhar em outros sites
lucasao 5 Denunciar post Postado Fevereiro 10, 2011 Faz assim: <? $data = explode("/", $dados['data_vencimento_1']); echo date("d/m/Y", mktime (0, 0, 0, $data[1], $data[0]-5, $data[2])); ?> Há opções de fazer isso no sql também. Que dependendo da aplicação seja mais prático. Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 Lucas, testei aqui esse código e ele imprimi na tela a data que está no banco de dados mas sem diminuir 5 dias dela. Valew. Compartilhar este post Link para o post Compartilhar em outros sites
Go Back 0 Denunciar post Postado Fevereiro 10, 2011 function NovaData($data){ $exp = explode("\", $data); $dataFormatada = mktime(0, 0, 0, $exp[1], $exp[0] - 5, $exp[2]); return $dataFormatada; } $sql = "Select Date_Format('d\m\Y', Data) As Data From Tabela Where Id = 1"; $exe = mysql_query($sql); $data = mysql_result($exe, 0, 'Data'); echo NovaData($data); Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 Pessoal, tentei fazer assim. $valor = date('Y-m-d', $dados['data_vencimento_1']); echo date($valor, mktime (0, 0, 0, date("m"), date("d")-5, date("Y"))); mais ele imprimiu a data 1970-01-01 nao sei o que esta acontecendo... Compartilhar este post Link para o post Compartilhar em outros sites
Go Back 0 Denunciar post Postado Fevereiro 10, 2011 Você tentou fazer o que eu postei ? Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 Sim, tentei sim... Tentei desta forma. function NovaData($data){ $exp = explode("\", $data); $dataFormatada = mktime(0, 0, 0, $exp[1], $exp[0] - 5, $exp[2]); return $dataFormatada; } $sql = 'Select Date_Format('d\m\Y', Data) As data_vencimento_1 From tb_cap'; $exe = mysql_query($sql); $data = mysql_result($exe, 0, 'Data'); echo NovaData($data); só que ele retornou esse erro. e error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in E:\Servidor\wamp\www\Smag_Inset\Sistema\templates_c\%%E0^E09^E0907AAA%%b_cap.tpl.php on line 321 Compartilhar este post Link para o post Compartilhar em outros sites
Go Back 0 Denunciar post Postado Fevereiro 10, 2011 Qual a linha 321 ? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 10, 2011 So pelas cores do forum ja da pra saber onde ta o erro .. (pelomenos eu acho) Essa e a Linha que ta com problema (creio que seje a 321) $sql = 'Select Date_Format('d\m\Y', Data) As data_vencimento_1 From tb_cap'; troque pra $sql = 'Select Date_Format("d\m\Y", Data) As data_vencimento_1 From tb_cap'; Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Go Back 0 Denunciar post Postado Fevereiro 10, 2011 Realmente o meu erro foi as aspas. Tente novamente agora que foi corrigido. você mesmo poderia ter percebido isso... Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 Eu ja tinha corrigido, o retornou o mesmo erro que tinha dado. esse: Parse error: parse error in E:\Servidor\wamp\www\Smag_Inset\Sistema\templates_c\%%E0^E09^E0907AAA%%b_cap.tpl.php on line 315 a linha 315 é essa: $sql = 'Select Date_Format("d\m\Y", Data) As data_vencimento_1 From tb_cap'; Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 10, 2011 olha pra linha de cima, o erro pode estar nela. Sempre poste a linha do erro (identificando qual é), e algumas dos arredores. Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 pessoal, a funcao inteira está assim: function NovaData($data){ $exp = explode("\", $data); $dataFormatada = mktime(0, 0, 0, $exp[1], $exp[0] - 5, $exp[2]); return $dataFormatada; } $sql = 'Select Date_Format("d\m\Y", Data) As data_vencimento_1 From tb_cap'; $exe = mysql_query($sql); $data = mysql_result($exe, 0, 'Data'); echo NovaData($data); Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 10, 2011 Tente Assim <?php function NovaData($data){ $exp = explode("\", $data); $dataFormatada = mktime(0, 0, 0, $exp[1], $exp[0] - 5, $exp[2]); return $dataFormatada; } $sql = 'Select Date_Format('d\m\Y', Data) As data_vencimento_1 From tb_cap'; $exe = mysql_query($sql); $data = mysql_result($exe, 0, 'Data'); echo NovaData($data); ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 10, 2011 explode por barra invertida ?? ela está escapando a aspa, ai causou erro de sintaxe. Pelo highlight do forum dá pra perceber. $exp = explode('\\', $data ); ainda assim, a data não é separada com barra comum? (pra direita?) / ? Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 eu trocando a barra de lado. ficou assim. function NovaData($data){ $exp = explode('/', $data); $dataFormatada = mktime(0, 0, 0, $exp[1], $exp[0] - 5, $exp[2]); return $dataFormatada; } $sql = 'Select Date_Format("d\m\Y", Data) As data_vencimento_1 From tb_cap'; $exe = mysql_query($sql); $data = mysql_result($exe, 0, 'Data'); echo NovaData($data); ai ele deu um erro diferente dentro da div, e apareceu a página toda agora. o erro foi esse: Warning: mysql_result() expects parameter 1 to be resource, boolean given in E:\Servidor\wamp\www\Smag_Inset\Sistema\templates_c\%%E0^E09^E0907AAA%%b_cap.tpl.php on line 317 943488000 Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Fevereiro 10, 2011 troque $exe = mysql_query($sql); por $exe = mysql_query($sql) or die(mysql_error()); Poste o retorno Compartilhar este post Link para o post Compartilhar em outros sites
Rob_Bor 0 Denunciar post Postado Fevereiro 10, 2011 Eu fiz a troca, ai ele retornou o erro. Unknown column 'Data' in 'field list' eu pensei que esse Data era da função e não uma coluna do MySQL. ai fiz o teste e coloquei assim. function NovaData($data){ $exp = explode('/', $data); $dataFormatada = mktime(0, 0, 0, $exp[1], $exp[0] - 5, $exp[2]); return $dataFormatada; } $sql = 'Select Date_Format("d\m\Y", data_vencimento_1) As data_vencimento_1 From tb_cap'; $exe = mysql_query($sql) or die(mysql_error()); $data = mysql_result($exe, 0, 'Data'); echo NovaData($data); troquei onde estava DATA pelo nome da coluna da tabela onde esta a data. mais ai retornou outro erro. que é esse: Warning: mysql_result() [function.mysql-result]: Data not found in MySQL result index 19 in E:\Servidor\wamp\www\Smag_Inset\Sistema\templates_c\%%E0^E09^E0907AAA%%b_cap.tpl.php on line 317 943488000 Compartilhar este post Link para o post Compartilhar em outros sites