Ir para conteúdo

POWERED BY:

Arquivado

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

bcs_ptx

[Resolvido] Comprara datas

Recommended Posts

Estou tentando organizar minha lista de férias, ai o seguinte, tem primeiro e segundo período, e oque eu fiz...

 

se o primeiro período das férias for menor que o segundo, mostra o segunda, se não o primeiro, mas não deu muito certo ai, oque está errado?

 

erro não mostra, mas ele substitui quase todas as datas, como

 

primeira data = 06/02/2012

 

segunda data = 02/07/2012

 

essas datas não deviam ser trocadas mas mudou

 

<?php

$data_hoje = date('y/m/d');

if($dados['primeiras_ferias2'] < $data_hoje){

	echo $dados['segunda_ferias2'];

}else{

	echo $dados['primeiras_ferias2'];

}	

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, tu tem que faze um str_replace("/","",$data) pra tira as "/", depois tu tem que compara elas

 

ou

 

usa o substr() compara "bloco"(ano => mes => dia)

 

tem várias formas de fazer, vou te deixa o exemplo do subtr();

<?
$data = substr($data_hoje,6,4);
$data .= substr($data_hoje,3,2);
$data .= substr($data_hoje,0,2);

$dataferias = substr($data['seu_campo_data'],6,4);
$dataferias .= substr($data['seu_campo_data'],3,2);
$dataferias .= substr($data['seu_campo_data'],0,2);

if($data > $dataferias)
{
  //bla bla bla
}
else
{
  //bla2 bla2 bla2
}
?>

 

se der erro avisa, mas quase certeza que funciona ^^

 

abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

da echo nas tuas datas e posta aqui pra mim, que eu ajeito as substr()

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou fazer melhor, segue meu script. assim está meu script, ele lista as datas do primeiro período de férias da pessoa, e oque eu estava tentando fazer é quando a data do primeiro período for menor que o dia atual, ele automaticamente troca para o segundo período

 

                       <?php

                       $seleciona = mysql_query("
		SELECT
			tbl_ferias2.id_ferias,
			tbl_usuarios.nome,
			date_format(tbl_ferias2.primeiras_ferias, '%d/%m/%Y') as primeiras_ferias2,
			date_format(tbl_ferias2.primeiras_ferias2, '%d/%m/%Y') as primeiras_ferias3,
			date_format(tbl_ferias2.segunda_ferias, '%d/%m/%Y') as segunda_ferias2,
			date_format(tbl_ferias2.segunda_ferias2, '%d/%m/%Y') as segunda_ferias3,
			tbl_status.status
		FROM
			tbl_ferias2
		JOIN
			tbl_usuarios
		ON
		(	
			tbl_ferias2.id_usuario = tbl_usuarios.id_usuario
		)
		JOIN
			tbl_status
		ON
		(
			tbl_ferias2.id_status = tbl_status.id_status
		)
		WHERE
			id_ferias
		LIMIT $inicio, $numero_registros");

                      ?>


                      <?php while($dados = mysql_fetch_assoc($seleciona)){  ?>

                      1º período | de = <?php echo $dados['primeiras_ferias2']; ?>

                      Até = <?php echo $dados['primeiras_ferias3']; ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha só

 

faz isso\/

$data_hoje = date("d/m/Y");

$data = substr($data_hoje,6,4);
$data .= substr($data_hoje,3,2);
$data .= substr($data_hoje,0,2);

//da echo nela e confere

echo $data;

//ela tem que aparece assim:

"AAAAMMDD"

//A = ano
//M = mes
//D = dia

//agora vamos pras férias

$data_aux = $dados['primeiras_ferias2'];

$dataferias = substr($data_aux,6,4);
$dataferias .= substr($data_aux,3,2);
$dataferias .= substr($data_aux,0,2);

//da echo nela e confere

echo $dataferias;

 

se aparecer no formatado

 

AAAAMMDD

 

pode compará-las que não terá erro, mas verifica o echo antes, fiz aqui agora e deu tudo certo apareceu "20111123" para o primeiro echo que coloquei nesse código

Compartilhar este post


Link para o post
Compartilhar em outros sites

parse error é erro de sintax, de "ponto-vírgula", da uma olhada mais minuciosa, caso não consiga posta o trecho que está indicando o erro

 

*quando digo trecho é 10 linhas acima e 10 linhas abaixo do numero indicado pelo php, pois as vezes ele indica o erro em um lugar, mas o erro pode estar em outro, apenas próximo aquele

Compartilhar este post


Link para o post
Compartilhar em outros sites

separa as 2 em variáveis diferentes, e ai compara elas com if() e else

 

o/

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando você compara duas datas, você está comparando 2 numeros ou duas strings(existem outros tipos mas nesse caso ou será um numero ou uma string), é o que a máquina vai considerar, de qualquer uma das 2 formas, deste modo:

 

(vou substituir a variavel pelo seu valor para você entender)

 

if( "10/10/2000" > "14/15/2034")

 

qual formato que está ai emcima?

string, a máquina não sabe diferenciar se uma string é "maior" que a outra, ela só sabe dizer se é igual ou não, então essa forma de comparar está errado.

 

e se fosse:

if( 10/10/2000 > 14/15/2034)

seria número, mas que que significa "/" quando falamos de números? significa "divisão", logo a sintaxe estaria errada.

 

a máquina não entende o formato específico "data", não existe o tipo "data"

 

como fazer ela entender o que eu quero comparar?

 

você traduzindo pra ela, foi isso que você fez com a substr(), a substr pegou os "pedaços" da string/numero que estava na forma de data, e colocou em uma variável como um número!

 

 

espero ter ajudado, e ter esclarecido suas dúvias, qualquer coisa, pvt-me ^_^

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.