Avatar billede jop... Nybegynder
16. april 2005 - 22:39 Der er 8 kommentarer og
1 løsning

underlig timestamp.

Jeg har en tabel, hvor jeg regner ud, hvor lang tid en bruger har været på en side. Til det har jeg lavet 3 rækker i min db (start, slut og difference). De er alle i formatet "timestamp".

Jeg trækker så differencen ud i denne:
-------------------------------------------
$totalsekunder = $row[difference];

$totalminutter = floor( $totalsekunder / 60 );
$sekunder = $totalsekunder % 60;

$totaltimer = floor( $totalminutter / 60 );
$minutter = $totalminutter % 60;

$totaldage = floor( $totaltimer / 24 );
$timer = $totaltimer % 24;

echo $totaldage ."d, " .$timer ."t, " .$minutter ."m " .$sekunder ."s.";
------------------------------------------------------------

Det fungerer fint, men den tæller bare alt for mange sekunder. Er det fordi at timestamp ikke er opgjort i sekunder.

Jeg sætter ind i timestamp med now(). Er det forkert?
Avatar billede erikjacobsen Ekspert
16. april 2005 - 22:42 #1
Ja, det er i formatet YYYYMMDDHHMMSS - dem kan du ikke bare trække fra hinanden.

Du kan bevare dit format, men lave det om til "unix-timestamp" når du bruger det,
eller sætte et unix-timestamp ind i et INT-felt.
Avatar billede jop... Nybegynder
16. april 2005 - 22:52 #2
Hvordan gør jeg egentlig det?  :-)
Avatar billede jop... Nybegynder
16. april 2005 - 22:53 #3
YYYYMMDDHHMMSS <--- Det er da ikke timestamp formatet?
Avatar billede erikjacobsen Ekspert
16. april 2005 - 23:08 #4
Hvilket at de to forslag vil du bruge? Og hvorfor skulle det ikke være formatet?
http://dev.mysql.com/doc/mysql/en/timestamp-pre-4-1.html
Der er dog sket nye ting i MySql 4.1.
Avatar billede jop... Nybegynder
16. april 2005 - 23:52 #5
Jeg kan da bare sætte unixtimestamp ind i int felterne.
Avatar billede erikjacobsen Ekspert
17. april 2005 - 00:01 #6
Det er det hurtigste, når det skal køre, da der ikke sker omformninger.
Men det er måske det trælseste at lave....
Avatar billede jop... Nybegynder
17. april 2005 - 00:55 #7
Hvordan skal jeg gøre nu. Laver jeg det bare om til int felter, og bruger noget andet end now() til at indsætte. Eller det mere besværligt end det?
Avatar billede jop... Nybegynder
17. april 2005 - 04:25 #8
Jeg har fået det til at virke. Tak for hjælpen endnu engang Erik.
Avatar billede erikjacobsen Ekspert
17. april 2005 - 10:00 #9
Ja, du laver dine felter til int. Det er lidt bøvlet hvis du har gamle TIMESTAMP felter, der også skal laves om.
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
Computerworld tilbyder specialiserede kurser i database-management

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