Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rob_Bor

[Resolvido] Operações com datas

Recommended Posts

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
<?
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

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

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
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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.