Avatar billede alex15 Nybegynder
19. juni 2009 - 16:19 Der er 6 kommentarer og
1 løsning

Hvordan ligger der 3 timer til en data timestamp fra en database

Hej Eksperter,

Hvis jeg har nogle timestamp data'er i min database og ønsker at lægge 3 timer til disse data, hvordan gøres dette?

Altså hvis jeg skriver følgende kode:

$query = mysql_query("SELECT * FROM `time` WHERE `id` = '1'");
$row = mysql_fetch_array($query);

echo "".$row['dato']."";

Hvordan ligger jeg 3 timer til dette tidspunkt. Har været inde og kigge på følgende:

http://us2.php.net/manual/en/function.time.php

Men kan ikke rigtig få den til at fungere med følgende kode:

$test = time() + (1 * 2 * 60 * 60);

echo '+3 timer: '. date($row['dato'], $test) ."";


Hvad gør jeg forkert? Og hvad kan der evt. gøres?

På forhånd tak for hjælpen !!

Alex
Avatar billede repox Seniormester
19. juni 2009 - 16:42 #1
Din udregning af tiden er forkert, det samme er din 'logik' omkring tillægningen af tiden.

Din udregning giver basalt set kun to timer.
Den korrekte udregning ville være (60 * 60 * 3) som giver 10800 sekunder - altså tre timer.
Den tid du får ud af det skal tillægges den tid du har fra databasen. Så det du skal gøre er:

$tid = $row["dato"];
$tillaeg = (60 * 60 * 3);
echo date("Y-m-d H:i:s", $tid); //almindelig tid
echo date("Y-m-d H:i:s", $tid + $tillaeg); //almindelig tid + tre timer
Avatar billede alex15 Nybegynder
19. juni 2009 - 16:51 #2
Tak for det hurtige svar. Kan godt se at jeg roder alt for meget rundt i det. Dog er din kode endnu ikke helt korrekt da:

Følgende kode:

$tid = $row['dato'];
$tillaeg = (60 * 60 * 3);
echo date("Y-m-d H:i:s", $tid)."<br>"; //almindelig tid
echo date("Y-m-d H:i:s", $tid + $tillaeg)."<br>"; //almindelig tid + tre timer
echo $tid;

Giver følgende svar:

1970-01-01 01:33:29
1970-01-01 04:33:29
2009-06-19 16:46:46
Avatar billede alex15 Nybegynder
19. juni 2009 - 16:55 #3
Data'erne er gemt som Timestamp i databasen, og har derfor følgende output:

2009-06-19 15:35:07
Avatar billede repox Seniormester
19. juni 2009 - 17:10 #4
Det sagde du jo ikke noget om og din kode indikerede det ikke.

$tid = strtotime($row['dato']); //skulle rette op på problemet
$tillaeg = (60 * 60 * 3);
echo date("Y-m-d H:i:s", $tid)."<br>"; //almindelig tid
echo date("Y-m-d H:i:s", $tid + $tillaeg)."<br>"; //almindelig tid + tre timer
echo $tid;
Avatar billede alex15 Nybegynder
19. juni 2009 - 17:18 #5
Skrev:

"Hvis jeg har nogle timestamp data'er i min database ...".

Men anyways, du skal have mange tak for hjælpen, har virkelig fået brugt noget tid på dette problem nu.

Forsat god dag.

Laver du lige et svar :)
Avatar billede repox Seniormester
19. juni 2009 - 19:16 #6
Ak ja, min fejl; jeg læste vist dit indlæg lidt for hurtigt - beklager.

Men her er mit svar.
Avatar billede alex15 Nybegynder
19. juni 2009 - 19:20 #7
Helt i orden.

Go weekend :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester