• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

greyback

Fazer contas com horas

23 mensagens neste tópico

Boas!

É o seguinte, eu estou a desenvolver um sistema online de um clubevideo...

e tenho uma simples pergunta....

$today =date('Y-m-d');

2008-06-27

agora uma pergunta... imaginando que o filme foi alugado nesse dia, e entregue dia 2008-06-29...

quantos dias passaram? xDD

podem-me ajudar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites


<?php
$today ='2008-06-20';
$var='2008-06-29';
$y = explode(',', $today);
$fy = mktime($y[0], $y[1], $y[2]);
$z = explode(',', $var);
$fz = mktime($z[0], $z[1], $z[2]);
echo $today;
echo "<br>";
echo $var;
echo "<br>";
echo $fy;
echo"<br>";
echo $fz;


?>

porque é q dá o mesmo output ? :X

output:

2008-06-20

2008-06-29

1221750000

1221750000

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
$today ='2008-06-20';
$var='2008-06-29';
$y = explode('-', $today);
$fy = mktime($y[0], $y[1], $y[2]);
$z = explode('-', $var);
$fz = mktime($z[0], $z[1], $z[2]);
echo $today;
echo "<br>";
echo $var;
echo "<br>";
echo $fy;
echo"<br>";
echo $fz;


?>

O explode têm que ser por "-" e não por ",".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
$today ='2008-06-20';
$var='2008-06-29';
$y = explode('-', $today);
$fy = mktime($y[0], $y[1], $y[2]);
$z = explode('-', $var);
$fz = mktime($z[0], $z[1], $z[2]);
echo $today;
echo "<br>";
echo $var;
echo "<br>";
echo $fy;
echo"<br>";
echo $fz;


?>

O explode têm que ser por "-" e não por ",".

obrigado xDDD

:X

e desculpa lá a estupidez :X

nem vi isso :O

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
$today ='2008-06-20';
$var='2008-07-05';
$y = explode('-', $today);
$fy = mktime($y[0], $y[1], $y[2]);
$z = explode('-', $var);
$fz = mktime($z[0], $z[1], $z[2]);


$multa=$fz-$fy;
echo $multa;
?>

isto devia dar 15 :X

e o output dá-me 45...

:x

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
$today ='2008-06-20';
$var='2008-07-05';
$y = explode('-', $today);
$fy = mktime(0,0,0,$y[1], $y[2], $y[0]);
$z = explode('-', $var);
$fz = mktime(0,0,0,$z[1], $z[2], $z[0]);


$multa=$fz-$fy;
echo $multa;
?>

Experimenta assim

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
$today ='2008-06-20';
$var='2008-07-05';
$y = explode('-', $today);
$fy = mktime(0,0,0,$y[1], $y[2], $y[0]);
$z = explode('-', $var);
$fz = mktime(0,0,0,$z[1], $z[2], $z[0]);
echo $fy;
echo"<br>";
echo $fz;

$multa=$fz-$fy;
echo $multa;
?>

o output é:

1213916400

12152124001296000

:O:O:O

a diferença é absurda :O

$multa=$fz-$fy;

echo $multa;

12152124001296000-1213916400=1296000

:X

ups :X

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como eu neste momento não posso testar, testa isto diz-me o resultado

<?php
$today ='2008-06-20';
$var='2008-07-05';
$y = explode('-', $today);
$fy = mktime(0,0,0,$y[1], $y[2], $y[0]);
$z = explode('-', $var);
$fz = mktime(0,0,0,$z[1], $z[2], $z[0]);
echo date("d-m-Y",$fy);
echo"<br>";
echo date("d-m-Y",$fz);

$multa=$fz-$fy;
echo $multa;
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

20-06-2008

05-07-2008

1296000

:X

igual

xD

mas os meses é q lixam :X

e já agora, obrigadao pela ajuda ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
$today ='2008-06-20';
$var='2008-07-05';
$y = explode('-', $today);
$fy = mktime(0,0,0,$y[1], $y[2], $y[0]);
$z = explode('-', $var);
$fz = mktime(0,0,0,$z[1], $z[2], $z[0]);
echo date("d-m-Y",$fy);
echo"<br>";
echo date("d-m-Y",$fz);

$multa=date("d-m-Y"$fz-$fy);
echo $multa;
?>

E assim? É que eu estou com o meu server down e não posso fazer experiências.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
$today ='2008-06-20';
$var='2008-07-05';
$y = explode('-', $today);
$fy = mktime(0,0,0,$y[1], $y[2], $y[0]);
$z = explode('-', $var);
$fz = mktime(0,0,0,$z[1], $z[2], $z[0]);
echo date("d-m-Y",$fy);
echo"<br>";
echo date("d-m-Y",$fz);

$multa=date("d-m-Y"$fz-$fy);
echo $multa;
?>

E assim? É que eu estou com o meu server down e não posso fazer experiências.

$multa=date("d-m-Y"$fz-$fy);

Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\ClubeVideo\data.php on line 12

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

falta uma virgula antes do $fz

20-06-2008

05-07-2008

16-01-1970

output :X

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oh jovem já te deram tudo..

<?php
$today ='2008-06-20';
$var='2008-07-05';
$y = explode('-', $today);
$fy = mktime(0,0,0,$y[1], $y[2], $y[0]);
$z = explode('-', $var);
$fz = mktime(0,0,0,$z[1], $z[2], $z[0]);
echo date("d-m-Y",$fy);
echo '<br>';
echo date("d-m-Y",$fz).'<br>';

$multa=date("d",$fz-$fy);
echo 'Diferenca: '.$multa;
?>

Não testei, mas olhando para aí parece-me dificil não trabalhar..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
<?php
$today ='2008-06-20';
$var='2008-07-05';
$y = explode('-', $today);
$fy = mktime(0,0,0,$y[1], $y[2], $y[0]);
$z = explode('-', $var);
$fz = mktime(0,0,0,$z[1], $z[2], $z[0]);
$multa=($fz-$fy)/3600;
if($multa > 0)
echo "O filme está atrasado ", $multa, " horas.";

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ele que pense um bocadinho, não se pode dar tudo feito. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que já é um bocado tarde para se dizer isso xD

Mas pronto :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado :P

já resolvi o problema, de uma maneira mais pequenina e mais fácil :P

obrigado na mesma

são uns fofos :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$timeA = strtotime($data1);
$timeB=strtotime($data2);
$total=intval(($timeB-$timeA)/86400))

Experimenta assim se faz favor :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$timeA = strtotime($data1);
$timeB=strtotime($data2);
$total=intval(($timeB-$timeA)/86400))

Experimenta assim se faz favor :P

Obrigado na mesma, mas já resolvi esse problema :D

ty

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora