Toon posts:

[php] Tijden optellen!

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi.,

Ik heb tijden in de vorm van 1000 (=10:00), 1330 (=13:30), 0000 (=00:00), 1315 (=13:15) enz enz.

Nu wil ik er steeds 30 bij tellen!

Bij 1000 + 30 is dit geen probleem, antwoord is 1030 (=10:30). Dit klopt wel!

0000 + 30 = 0000, dit is fout het moet 0030 worden!
Maar ik krijg het met geen mogelijkheid voor elkaar.
Hoe moet dit!

Help me!, ik hoop dat je snapt wat er dus niet wil.

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Volgens mij kun je beter met timestamps werken. Dit zijn het aantal seconden vanaf 1970 af. Deze tijd kun je krijg mbv de func. time() (huidige tijd), of met mktime() (als jezelf een timestamp wilt defineren).
Met de func. date kun je uit de timestamp een 'leesbare' tijd halen.
Als je 30 min wilt bijtellen, kun je simpel 1800 sec bijtellen...

Verwijderd

Topicstarter
Op zondag 06 januari 2002 20:08 schreef AK47 het volgende:
Volgens mij kun je beter met timestamps werken. Dit zijn het aantal seconden vanaf 1970 af. Deze tijd kun je krijg mbv de func. time() (huidige tijd), of met mktime() (als jezelf een timestamp wilt defineren).
Met de func. date kun je uit de timestamp een 'leesbare' tijd halen.
Als je 30 min wilt bijtellen, kun je simpel 1800 sec bijtellen...
Nee, dat wil ik dus niet!! :):) het moet kunnen

Verwijderd

Topicstarter
dit had ik bedacht beetje gepruts maja, het is weekend :P
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
function BerekenTijd($van)
  {
    $van = $van+30;
    $uur = substr("$van",0,2);
    $min = substr("$van",2,4);
    if ($min == '00')
      {
        $min = '30';
      }
    if ($min > 60)
      {
        $uur = $uur+1;
        $min = '00';
      }
    if ($uur > 23 &amp;amp;&amp;amp; $uur < 00)
      {
        $uur = '00';
        $min = '00';
      }
    $totaal = $uur . $min;
    return $totaal;
  }


echo BerekenTijd("0000");
?>

hij geeft nu gewoon 0000 terug :(

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

sim-pel...

AK47 heeft gedeeltelijk gelijk:
PHP:
1
2
3
<?
$time = date('H:i',mktime(0,0,0,$uren,$minuten,0) + (30 * 60))
?>

Klaar voor een nieuwe uitdaging.


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

code:
1
if ($min == '00')   {     $min = '30';  }

en dat is nuttig voor :?

Doet iets met Cloud (MS/IBM)


  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Op zondag 06 januari 2002 20:10 schreef Stoel het volgende:
dit had ik bedacht beetje gepruts maja, het is weekend :P
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
function BerekenTijd($van)
  {
    $van = $van+30;
    $uur = substr("$van",0,2);
    $min = substr("$van",2,4);
    if ($min == '00')
      {
        $min = '30';
      }
    if ($min > 60)
      {
        $uur = $uur+1;
        $min = '00';
      }
    if ($uur > 23 &amp;amp;amp;&amp;amp;amp; $uur < 00)
      {
        $uur = '00';
        $min = '00';
      }
    $totaal = $uur . $min;
    return $totaal;
  }


echo BerekenTijd("0000");
?>

hij geeft nu gewoon 0000 terug :(
Vind je het gek?
Bij dit:
$totaal = $uur . $min;
krijg je 00 X 30 = 0000;

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op zondag 06 januari 2002 20:10 schreef Stoel het volgende:
dit had ik bedacht beetje gepruts maja, het is weekend :P
code:
1
if ($uur > 23 &amp;&amp; $uur < 00)
Wanneer is $uur én groter dan 23 én kleiner dan 0 ?
Wanneer is $uur überhaupt < 0 ?

Verwijderd

Topicstarter
heel simpel op te lossen door gewoon dit dit doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
function BerekenTijd($van)
  {
    $uur = substr("$van",0,2);
    $min = substr("$van",2,4);
    $min = ($min + 30); // <--
    if ($min > 59)
      {
        $uur = $uur+1;
        $min = '00';
      }
    if ($uur > 23)
      {
        $uur = '00';
        $min = '00';
      }
    $totaal = $uur . $min;
    return $totaal;
  }
?>

Thanks to Obelix

Verwijderd

Ruudje eerst denken dan doen :)
Maar denken doet pijn ik spreek uit evaring :)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op zondag 06 januari 2002 20:25 schreef Stoel het volgende:
heel simpel op te lossen door gewoon dit dit doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
function BerekenTijd($van)
  {
    $uur = substr("$van",0,2);
    $min = substr("$van",2,4);
    $min = ($min + 30); // <--
    if ($min > 59)
      {
        $uur = $uur+1;
        $min = '00';
      }
    if ($uur > 23)
      {
        $uur = '00';
        $min = '00';
      }
    $totaal = $uur . $min;
    return $totaal;
  }
?>

Thanks to Obelix
I hate to brag... maar mij versie is toch 8echt* mooier...
PHP:
1
2
3
<?
$time = date('H:i',mktime(0,0,0,substr($van,0,2),substr($van,2,2),0) + (30 * 60))
?>

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Op zondag 06 januari 2002 20:29 schreef chem het volgende:

[..]

I hate to brag... maar mij versie is toch 8echt* mooier...
PHP:
1
2
3
<?
$time = date('H:i',mktime(0,0,0,substr($van,0,2),substr($van,2,2),0) + (30 * 60))
?>
Hmm die werkt niet goed

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op zondag 06 januari 2002 20:33 schreef Stoel het volgende:

[..]

Hmm die werkt niet goed
ik heb hem niet getest maar het zou moeten werken op die manier... evt. beetje pielen... maar 1 regel is nog altijd beter dan 15 :)

Klaar voor een nieuwe uitdaging.

Pagina: 1