28. oktober 2010 - 00:37Der er
15 kommentarer og 1 løsning
problem med visning af timestamp med date
Jeg har lavet en kode der skal fortælle hvor siden det er at brugeren har postet noget.. Det virker egentlig også næsten helt perfekt... bortset fra at når variablen $time_ago runder de 24 timer viser den 0 hours ago istedet for at udskrive 1 day ago...
den udskriver dog alligevel "1 day ago" når man ændre timestampet yderligere... men kan ikke rigtig finde ud af hvorfor den skriver "0 hours ago"..
<?php // mktime(hour,minute,second,month,day,year) $differTimeStamp = mktime(0,0,0,10,28,2019); // Den dato du vil sammenligne med $currentTimeStamp = time(); // Nuværende timestamp
Tak for jeres svar, men søger mere et svar på det jeg spurgte om eller en løsning på det problem jeg har med mit eget script.. sidder og eksperimenterer lidt med noget nemlig så kan ikke bruge et færdigskrevet script..
Kan være fordi at klokken 00 og 24 er det samme. Så hvis du har H i din kode (som viser fra 00 - 24), så skift det til G, som viser fra 1 - 24. Det skal være store bogstaver.
Det var jo netop lige det du spurgte om jeg kom med et færdigt script til du kan vel bare rette det til efter dine behov, da du nok ikke har brug for at udskrive hvor mange år det er siden en bruger sidst har postet?
Webweaver jeg har allerede G i min date funktion. Går ud fra at problemet ligger i disse linjer:
elseif ($time_ago <= "86399") { if ($time_ago < "7199") { $time_ago = "1 hour ago"; // dette er bare til for at der ikke skal stå 1 hours (altså 1 timer) } else { $time_ago = date('G \h\o\u\r\s \a\g\o',$time_ago); }
Ahh prøver du at skrive hours ago som tekst inde i din date? Det kan du ikke. Lille h betyder fx også noget i date funktionen. Den vil returnere timer i 12 timers format.
Det er klart at du får 0 ud. Det tal du har det er et Unix Epoch tal. Det vil sige, det er antal sekunder fra 1. januar 1970. Hvis du regner det ud, så svarer 83504 til 2/1/1970 - 0.11.44. (bemærk klokken. Første er timer, og er 0)
Du bruger det forkert. Du ser det bare som hvor mange sekunder det er, fra brugeren har postet noget. Og der svarer 83504 til 23,19 timer ca.
Du kan ikke bruge date på den måde du vil. Der må du istedet sige
- Jo det kan jeg godt se nu Jannick.. Men det jeg søgte var mere at få en forklaring eller en bedre forståelse af hvordan man skulle gribe sådan noget an da jeg ikke rigtig har arbejdet med timestamps osv. før .. Kunne helt sikkert også have brugt din kode, men havde bare ikke fået lige så meget ud af det tror jeg. Sætter pris på at du prøvede at hjælpe!
Synes godt om
Ny brugerNybegynder
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.