Galera beleza... estive me empenhando nos ultimos dias para achar uma data "regressiva" para um evento por ex.....
hoje é 11/05/2005 e dia 18/09/2005 vai ter uma festa... assim o sistema me diz que faltam ( por ex. não calculei corretamente ) 3 meses e 7 dias algo assim.. sendo que temos meses com 31 e 30 etc... não da só para somar e diminuir... cheguei ao seguinte programa... é meio grande... nunca fiz curso de php aprendi sozinho então pode parecer ruin ou estranho sei lá... ai vai....
$datahoje = date("Y-m-d H:i:s");
// fraciona a data da festa
$fano = (substr($dados[5], 0, 4));
$fmes = (substr($dados[5], 5, 2));
$fdia = (substr($dados[5], 8, 2));
$fhora = (substr($dados[5], 10, 3));
// Fraciona a data de hoje
$hano = (substr($datahoje, 0, 4));
$hmes = (substr($datahoje, 5, 2));
$hmes = $hmes+1;
$hdia = (substr($datahoje, 8, 2));
$hhora = (substr($datahoje, 10, 3));
// calcula
$qdano = $fano - $hano;
$qdmes = $fmes - $hmes;
$qdmes = $fmes - $hmes;
$qddia = $fdia - $hdia;
$dianega = (substr($qddia, 0, 1));
$qdhora = $fhora - $hhora;
$lastday = mktime (0,0,0,$fmes,0,$hano);
$ddd = strftime ("%d", $lastday);
$mkdia = (substr($ddd, 0, 2));
$qdmesnega = (substr($qdmes, 0, 1));
// imprime o ano
if ($qdmesnega == "-"){
$qdmes = 0;
}
if($qdano > 0){
echo "$qdano ano,";
}
// imprime o mês
if($qdmes != 0){
if ($qdmes > 1){
echo "$qdmes meses,";
}else{
echo "$qdmes mes,";
}}
// imprime o dia
if ($dianega == "-"){
$qddia = $mkdia + $qddia;
echo "|| $qddia dias ||";
}else{
if ($qddia == 0){
echo "A festa é Hojeeeeee";
}else{
if($qddia == 1){
echo "$qddia dia";
}else{
echo "$qddia dias";
}
}
}
Então pergunto.... existe alguma outra forma de achar esta data restante como demostrei acima ?
uma forma mais precisa etc ... essa funcina bem até agora, mas apresentou um bug quando retorno a data etc...
se alguem puder dar uma dica... ou quizer usar o codigo... sussegado
valeu
abraço
Edson

Data Que Falta Para Um Evento
Started By gastro, 11/05/2005, 12:16
2 replies to this topic
#1
Posted 11/05/2005, 12:16
#2
Posted 11/05/2005, 12:39
Usando mktime, acho q é isso:
Ve se funciona esse lance ae, não tive tempo pra testar!
.
// fraciona a data da festa $fano = (substr($dados[5], 0, 4)); $fmes = (substr($dados[5], 5, 2)); $fdia = (substr($dados[5], 8, 2)); $fhora = (substr($dados[5], 10, 3)); // Fraciona a data de hoje $hano = (substr($datahoje, 0, 4)); $hmes = (substr($datahoje, 5, 2)); $hmes = $hmes+1; $hdia = (substr($datahoje, 8, 2)); $hhora = (substr($datahoje, 10, 3)); $data = date("d", mktime($fhora - $hhora, 0, 0, $fmes - $hmes, $fdia - $hdia, $fano - $hano); echo "Faltam ". $data ." dias para a festa\n";
Ve se funciona esse lance ae, não tive tempo pra testar!

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]
[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]
[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]
#3
Posted 11/05/2005, 15:18
<?
// fraciona a data da festa
$fano = (substr($dados[5], 0, 4));
$fmes = (substr($dados[5], 5, 2));
$fdia = (substr($dados[5], 8, 2));
$fhora = (substr($dados[5], 10, 3));
// Fraciona a data de hoje
$hano = (substr($datahoje, 0, 4));
$hmes = (substr($datahoje, 5, 2));
$hmes = $hmes+1;
$hdia = (substr($datahoje, 8, 2));
$hhora = (substr($datahoje, 10, 3));
$data = date("d", mktime($fhora - $hhora, 0, 0, $fmes - $hmes, $fdia - $hdia, $fano - $hano));
echo "Faltam ". $data ." dias para a festa\n";
?>
:::Agora tah certo...faltava som um ).
// fraciona a data da festa
$fano = (substr($dados[5], 0, 4));
$fmes = (substr($dados[5], 5, 2));
$fdia = (substr($dados[5], 8, 2));
$fhora = (substr($dados[5], 10, 3));
// Fraciona a data de hoje
$hano = (substr($datahoje, 0, 4));
$hmes = (substr($datahoje, 5, 2));
$hmes = $hmes+1;
$hdia = (substr($datahoje, 8, 2));
$hhora = (substr($datahoje, 10, 3));
$data = date("d", mktime($fhora - $hhora, 0, 0, $fmes - $hmes, $fdia - $hdia, $fano - $hano));
echo "Faltam ". $data ." dias para a festa\n";
?>
:::Agora tah certo...faltava som um ).
<:.:KCC:.:>
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)