Avatar billede madsmm Nybegynder
10. oktober 2003 - 14:06 Der er 20 kommentarer og
1 løsning

Er timestamp mere end 3 timer gammel ?

Hejsa,

jeg har et timestamp YYYY-MM-DD HH:II:SS

så skal jeg bruge noget i stil med :

hvis (timestamp er under 3 timer gammelt) {
    udfør en masse crap;
}
Avatar billede madsmm Nybegynder
10. oktober 2003 - 14:06 #1
Det håber jeg nogen kan hjælpe med ASAP!

jeg prøvede noget strtotime(timestamp); men det gav en mærkeligt resultat.

På forhånd tak!

Mads
www.startout.dk
Avatar billede blackscorpion Nybegynder
10. oktober 2003 - 14:29 #2
hvad med noget ala

if(time() - timestamp <= 10800) {
echo "Timestampet er mindre end 3 timer gammelt.";
}

???????????

- TheSpeaker.
Avatar billede googolplex Novice
10. oktober 2003 - 14:30 #3
Du kan lave dit timestamt om med mk_time():

http://dk.php.net/manual/en/function.mktime.php

Derefter:

if (($dittimestamp - time() < (60*60*24*21)) {
    blah blah
}

Kan sikkert gøres nemmere direkte fra MySQL, men det er jeg ikke en nørd til :(
Avatar billede blackscorpion Nybegynder
10. oktober 2003 - 14:31 #4
fuck mit var også et svar. *G* ;)
Avatar billede googolplex Novice
10. oktober 2003 - 14:32 #5
Ups, så det som tre uger :P -> (60*60*3)
Avatar billede googolplex Novice
10. oktober 2003 - 14:32 #6
the_speaker: Det lignede da ellers en kommentar :P
Avatar billede storkie Nybegynder
10. oktober 2003 - 14:34 #7
$timestamp_nu = date(YmdHis); //Henter timestampen lige nu
if($timestam > $timestamp_nu-10800){
//Hvis timestampen er større end timestapen nu minus 10800 sekunder altså 3 timer.
echo "udfør en masse crap";
}else{
echo "udfør ikke en masse crap";
}
Avatar billede blackscorpion Nybegynder
10. oktober 2003 - 14:36 #8
googolplex -> yeah i know, men det er længe siden jeg har brugt eksperten, så glemte at skifte til svar. ;)
Avatar billede googolplex Novice
10. oktober 2003 - 14:37 #9
I know ;)
Avatar billede nicklasb Nybegynder
10. oktober 2003 - 14:38 #10
du mangler vel også en form for omvending af dit tidsvariabel til timestamp.. evt noget ligende:

<?php

$hoursto = 3;
$olddate = '2003-10-10 11:15:15';
$newdate = date ('U', mktime (substr($olddate, 11, 2),substr($olddate, 14, 2),substr($olddate, 17, 2),substr($olddate, 5, 2),substr($olddate, 8, 2),substr($olddate, 0, 4)));
$timenow = time();

if ($timenow < $newdate + ( $hoursto * 60 * 60 ) ) {
    echo 'Din tidsvariabel er MINDRE end ' . $hoursto . ' timer gammel<br>
Din tidsvariabel i UNIX-timestamp: ' . $newdate . '<br>
Tiden lige nu i UNIX-timestamp: ' . $timenow . '<br>
Maksimal forskel i sekunder: ' . ( $hoursto * 60 * 60 ) . '<br>
Aktuelle forskel: ' . ( $timenow - $newdate );
} else {
    echo 'Din tidsvariabel er MERE end ' . $hoursto . ' timer gammel<br>
Din tidsvariabel i UNIX-timestamp: ' . $newdate . '<br>
Tiden lige nu i UNIX-timestamp: ' . $timenow . '<br>
Maksimal forskel i sekunder: ' . ( $hoursto * 60 * 60 ) . '<br>
Aktuelle forskel: ' . ( $timenow - $newdate );
}

?>

?
Arbejder ikke så tit med tider, så ved ikke om der er en specifik funktion til at gøre det lettere..
Avatar billede blackscorpion Nybegynder
10. oktober 2003 - 14:42 #11
nicklasb -> wow, er det ikke en lidt besværlig måde at gøre det på?? mener bare det ser lidt uoverskueligt ud. ;)
Avatar billede nicklasb Nybegynder
10. oktober 2003 - 14:45 #12
the_speaker -> Hmm.. er det ikke en underlig kommentar at komme med når du ikke selv har noget bedre at byde på? ;D
Avatar billede blackscorpion Nybegynder
10. oktober 2003 - 14:47 #13
har da givet mit bud på hvad manden har brug for at vide, ikke lave en masse ting, om hvordan man kan få bedst muligt vist de forskellige tider på en side?
Avatar billede nicklasb Nybegynder
10. oktober 2003 - 14:52 #14
hmm.. det inde i if'erne er såmendt også bare for at vise at den regner rigtigt, og vise et mere brugbart resultat.. Er skam ikke for at vise hvordan han regner forskellige tider ud..
Prøv selv lige engang at læse koden igennem.. Så kan du vel for håbentligt selv lige tage det sidste fra så der står:

<?php

$hoursto = 3;
$olddate = '2003-10-10 11:15:15';
$newdate = date ('U', mktime (substr($olddate, 11, 2),substr($olddate, 14, 2),substr($olddate, 17, 2),substr($olddate, 5, 2),substr($olddate, 8, 2),substr($olddate, 0, 4)));
$timenow = time();

if ($timenow < $newdate + ( $hoursto * 60 * 60 ) ) {
    echo 'Din tidsvariabel er MINDRE end ' . $hoursto . ' timer gammel';
} else {
    echo 'Din tidsvariabel er MERE end ' . $hoursto . ' timer gammel';
}

?>

tretallet er nu bare for at det er lettere at rette hvor amnge timer der må gå.. Og den så også selv retter det nede i selve scriptet.. Men hvis man ved det er en konstant, kunne man selvfølgelig bare skrive den DIREKTE i scriptet..

Og nej, kan ikke se hvor dit svar på spørgsmålet ligger?
Kan se du kan trække to tal fra hinanden.. Men sjovt nok kommer resultatet ikke ud i det format du prøver at trække det fra i (i hvert falde i følge spørsgmålet).. Så ved ikke hvor meget jeg ville kunne bruge et svar som dit til.. desværre..
Avatar billede fangel Nybegynder
10. oktober 2003 - 14:52 #15
strtotime() ser nu meget god ud til sagen...

--
<?php

$dato = "2003-10-10 14:40:04";
$THEN = strtotime($dato);
$NOW = time();

if($THEN  + (60*60*3) < $NOW){
  echo "Your date (" . date("j/n-Y H:i:s", $THEN) . ") seems to be to old!";
}
else
  echo "Your date (" . date("j/n-Y H:i:s", $THEN) . ") is really fine!";
}

?>
--

the_speaker -> et svar er en aktuel løsning, en kommentar er et forslag til en løsning! - aka dit skulle have været en kommentar!

Morten
Avatar billede tipsen Nybegynder
10. oktober 2003 - 15:00 #16
Hvis man har et timestamp på den angivne form tyder det på at data kommer fra MySQL - hvorfor ikke bare bruge MySQLs indbyggede funktioner når data udtrækkes fra databasen?
Avatar billede googolplex Novice
10. oktober 2003 - 15:06 #17
Det var også min ide, men det kunne jeg desværre ikke finde ud af :(
Avatar billede tipsen Nybegynder
10. oktober 2003 - 15:30 #18
Vi ved heller ikke, hvad der skal udføres, så det er ikke umiddelbart til at sige om det lige kan gøres afsindigt nemt :-)
Avatar billede madsmm Nybegynder
30. oktober 2003 - 11:22 #19
ville egentlig give pointene til nicklasb, men du har ikke svaret, kun kommenteret, så hvis du poster et svar, så er der 60pts til dig!
Avatar billede tipsen Nybegynder
30. oktober 2003 - 11:58 #20
Det har vist heller ikke interesse ;-)
Avatar billede nicklasb Nybegynder
30. oktober 2003 - 16:42 #21
kan da godt ligge et svar, men kan ikke helt huske hvad det er jeg har lavet i dette spørgsmål.. nå, lige meget..
svar her!
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