Avatar billede topsite Nybegynder
05. september 2003 - 23:03 Der er 10 kommentarer og
1 løsning

antal minutter/time fra før og nu

// Genererer timestamp for nu
$nutid = time();

// trækker nu, fra gammel tid (gammel tid er også et timestamp, måske 20 minutter gammelt)

$onlinemin = "$nutid"-"$row[date]";

// Jeg skal have timer minutter og sekunder, hvor lang tid er der gået fra gammel tid til nu.
$minminon = date("H:i:s", $onlinemin);

Det virker ikke, giver bare en time! (01:00:00) lige meget hvad!

kan i hjælpe!?
Avatar billede detox Nybegynder
05. september 2003 - 23:14 #1
Hvordan hiver du dit timestamp ud fra databasen?
Avatar billede zeled Nybegynder
05. september 2003 - 23:16 #2
$forskel=$nutid-$row['date'];
$timer=floor($forskel/3600); //Der går 3600 sekunder pr. time
$forskel=$forskel-($timer*3600); // Så hiver vi timerne ud af regnskabet.
$minutter=floor($forskel/60); //60 sekunder pr. minut
$forskel=$forskel-($minutter*60); // så hiver vi også minutterne ud.
// Der som er tilbage af forskel vil så være antallet af sekunder

echo "Online tid: $timer Timer, $minutter Minutter og $forskel sekunder";
Avatar billede detox Nybegynder
05. september 2003 - 23:30 #3
Det kræver at du hiver tiden ud som et unix timestamp. Fx:

SELECT UNIX_TIMESTAMP(tid) AS `date` FROM tabel
Avatar billede zeled Nybegynder
05. september 2003 - 23:32 #4
Eller at man gemmer unix timestamp som INT
Avatar billede detox Nybegynder
05. september 2003 - 23:34 #5
Du kan evt. benytte dig af modular (%):

$nu = time();
$onlinetid = $row['date'];
$dif = $nu-$onlinetid;
$timer = $dif/3600%24;
$minutter = $dif/60%60;
$sekunder = $dif%60;
printf("%02d:%02d:%02d", $timer, $minutter, $sekunder);
Avatar billede topsite Nybegynder
05. september 2003 - 23:54 #6
Jeg har lige prøvet Detox's Sidste eksempel - det gav bare 00:00:00
Avatar billede detox Nybegynder
06. september 2003 - 00:02 #7
Hvilken version af php bruger du?
Avatar billede tipsen Nybegynder
06. september 2003 - 00:35 #8
rettelse til detox' udgave:

$timer = (int) ($dif/3600);

Kan forøvrigt ikke se, at udgaven af PHP har betydning med mindre vi går *langt* tilbage...

hvis $row['date'] indeholder noget "fornuftigt" synes jeg ovenstående burde fungere...
Avatar billede topsite Nybegynder
06. september 2003 - 01:46 #9
Prøvede zeled bud!, det virkede, dog måtte jeg sætte "" rundt om minus-regnestykket

forskel="$nutid"-"$row[date]";
ved ikke hvorfor, men det hjalp :)

tak
Avatar billede johslind Nybegynder
06. september 2003 - 16:06 #10
Det er altså ikke alle PHP-servere, der reagerer på samme måde.
Prøv evt. at se nogle lignende overvejelser om aldersberegning her: http://www.1go.dk/forum2003/viewtopic.php?t=1361
Med venlig hilsen, Johs. Lind
Avatar billede tipsen Nybegynder
07. september 2003 - 09:24 #11
johslind: Det er korrekt at der vil være forskel på tværs af platforme (OS'er) når de indbyggede funktioner ikke benyttes jævnfør dokumentationen - eks. er funktioner der benytter sig af Unix Timestamp kun brugbare for datoer der ligger i intervallet fra 1970-2038 - så længe man holder sig til den dokumenterede del af funktionerne, vil ovenstående kode ikke give anledning til problemer på tværs af php-versioner.

Derudover kan jeg henvise til Date/Time klassen i PEAR der er beregnet til dato-manipulationer, som involverer datoer der falder uden for ovennævnte interval.

topsite: Mht. ændringen af ovenstående kode til at bruge "" omkring variable tyder det på at der blot er andre fejl i din kode som bevirker at ovenstående ikke umiddelbart virker.
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