[php] Tijd bij GMT optellen

Pagina: 1
Acties:

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-08 09:43
Ik ben bezig met een scriptje dat tijd bij de huidige GMT kan optellen. Ik heb het volgende al:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$tijdformat = "H:i";

$currtijd[12] = gmdate("$tijdformat");
$xn = 0;

for($xt = -12; $xt <= 12; $xt++) {
        
    $currtijd[$xn] = $currtijd[12] + $xt;
    $xn++;

}
?>

Ik dacht van te voren al dat dit niet ging werken maar kon er niet achter komen hoe het dan wel zou moeten.
Ik wil liefst wel met de gmdate() functie blijven werken.
De uitvoer die ik nu krijg ik bijv: (als het 15:25 GMT uur is)

$currdate[11] => 14
$currdate[12] => 15
$currdate[13] => 16

Wie oo wie weet hoe ik kan optellen zonder dat het formaat verloren gaat?

Verwijderd

Als je dat tijdsformaat in $currtijd zet, wordt die door PHP als een string benaderd.. Er zit namelijk het dubbelepunt teken in.. Wat je moet doen is een string nemen die je later converteerd naar integer waarin je alleen het huidige uur stopt.. Dan ga je die for-lus die je nu ook al hebt uitvoeren zodat je die array krijgt currtijd[0-23] waarin je alle GMT's zet.. Dan maak je d'r weer een string van en zet gmdate(":i"); erachter..

Let wel op dat je checkt of de uren niet negatief worden!
Bv, als het op GMT 03:00 is, kan het 7 tijdzones terug geen -4:00 zijn..

Daarom kan je beter mktime() gebruiken, en steeds 60^2 (is 3600 seconden = 1 uur) er vanaf trekken en bijoptellen.. Als tweede argument van gmdate() kan je geloof ik namelijk ook het aantal seconden sinds 00:00:00 1 Jan 1970 geven.. De naam hiervoor ben ik even kwijt..

Succes! :)

edit:

[php]<?
for($xt = -12; $xt <= 12; $xt++) {
$currtijd[$xn] = $currtijd[12] + $xt;
$xn++;
}
?>[/php]
Je gebruikt trouwens twee keer $currtijd.. t'Is handiger voor de huidige tijd en de 'GMT-geconverteerde' tijden verschillende vars te gebruiken..

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-08 09:43
Ik heb nu dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
$xn = 0;

for($xt = -12; $xt <= 12; $xt++) {
        
    $tversch = (time() - ($xt*(60^2)));
    $currtijd[$xn] = gmdate("$tijdformaat",$tversch);
    $xn++;

}
?>

En dit krijg ik eruit: (15.50 GMT)

$currdate[11] => 15.51
$currdate[12] => 15.50
$currdate[13] => 15.49

Ik kom dus dichter n de buurt maar het is nog niet alles.. :)

[edit]
Geef het op.. iemand nog een tip?

Ik heb iig al gezien dat ik de (time() - ($xt*(60^2))) in (time() + ($xt*(60^2))) moet veranderen.
De hele $currdate[12] = gmdate("$timecode"); regel heb ik verwijdert...

Maar nog steeds telt hij de tijd er bij de minuten op/af ipv. bij de uren... :?

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-08 09:43
*skop*

Ik denk dat het zo ongeveer klopt behalve dan dat hij secondes ipv. uren veranderd..

Iemand enig id?

[edit]

Loop ik uren te pielen, blijkt hij dus gewoon problemen te hebben met de 60^2
Als ik dat nl. vervang door 3600 dan werkt het geheel.

Problemo solvo :)

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Dat vindt ik opzich wel heel vaag, moet toch niet kunnen?

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-08 09:43
Geen id hoe het komt 60*60 pakt ie ook gewoon maar 60^2, dat is volgens PHP gewoon 60... :?

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

D2k

Op woensdag 02 januari 2002 12:24 schreef Maxonic het volgende:
Geen id hoe het komt 60*60 pakt ie ook gewoon maar 60^2, dat is volgens PHP gewoon 60... :?
http://www.php.net/manual/en/function.pow.php :O

Doet iets met Cloud (MS/IBM)


  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-08 09:43
Ja en? ^ moet toch zowiezo ook kunnen?
Of is php dan toevallig weer een uitzondering op de regel?

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

D2k

Op woensdag 02 januari 2002 12:29 schreef Maxonic het volgende:
Ja en? ^ moet toch zowiezo ook kunnen?
Of is php dan toevallig weer een uitzondering op de regel?
doe dat dan ook ff tegen de makers van C zeggen (daar is het ook gewoon pow() )

Doet iets met Cloud (MS/IBM)

Pagina: 1