Avatar billede shjorth Nybegynder
14. november 2008 - 16:30 Der er 6 kommentarer og
1 løsning

1 time fra tidspunkt uanset dato

Hejsa..

Jeg sidder og prøver at lave et lille spil.
Ideen er at en person skal kunne udføre et job 1 gang i timen. Jeg skal så gemme tid/dato i min database, og så skal han først kunne gøre det igen een time efter.

Altså skal jeg finde ud af hvordan jeg beregner een time fra dette tidspunkt. Er der nogen der har en ide til hvordan jeg gør det?

Mange tak :)
Avatar billede micc Nybegynder
14. november 2008 - 16:44 #1
Hvis du vil have svaret som et Unix timestamp kan du bare bruge:
  $timestamp = strtotime('+1 hour');
Denne kan så formateres vha. date().
Avatar billede Slettet bruger
14. november 2008 - 16:48 #2
Har aldrig brugt strtotime før, men derimod time() som returnerer det nuværende tidspunkt i unix timestamp (som jeg kan se strtotime også gør) og så bare ligge 1 time til i sekunder.

$expire = time() + 3600;

og ligesom ved micc's eksempel, kan du formaterer dataen ved brug af DATE(format,$expire);
Avatar billede showsource Seniormester
14. november 2008 - 17:01 #3
Du kan også gøre det i din INSERT/UPDATE
UPDATE `tabel` SET `tid` = DATE_ADD(NOW(), INTERVAL 1 HOUR) WHERE `user` = 1
Avatar billede shjorth Nybegynder
14. november 2008 - 20:24 #4
Super det virker jo perfekt...
Så får jeg jo formatet 2008-11-14 00:00:00 i min db
Hvis jeg nu gerne vil skrive der er "x minutter til tidspunktet" er der så nogend er ved hvordan jeg gør det :)?

Mange tak
Avatar billede Slettet bruger
14. november 2008 - 21:09 #5
På det punkt, ville jeg selv personligt konverterer dit format om til unix timestamp og gøre det samme med den nuværende unix timestamp (time()) og så trække det fra hinanden og udskrive det nye tidspunkt.
Men der findes jo andre kortere metoder til at gøre det.
Avatar billede showsource Seniormester
15. november 2008 - 06:49 #6
F.eks.

<html><head><title>1 times nedt&aelig;lling</title>

<script type="text/javascript">

function countd(allseconds) {

var oneM = 60;
var oneH = (60*60);

var Htime = Math.floor(allseconds/oneH);
var Mtime = Math.floor((allseconds-(Htime*oneH))/oneM);
var Stime = Math.floor(allseconds-(Htime*oneH)-(Mtime*oneM));

document.getElementById("timetext").firstChild.nodeValue='Spil igen om '+(Htime<10?'0'+Htime:Htime)+' t '+(Mtime<10?'0'+Mtime:Mtime)+' m '+(Stime<10?'0'+Stime:Stime)+' s';


    if(allseconds){

        setTimeout("countd("+(allseconds-1)+");",1000);

    }else{

        document.getElementById("timetext").firstChild.nodeValue='Du kan spille igen';

    }

}

</script>

</head>

<body>


<div id="timetext">&nbsp;</div>

<script type="text/javascript">
countd(<?php echo (strtotime("+ 1 HOUR")-time()); ?>);
</script>


</body></html>
Avatar billede shjorth Nybegynder
12. juni 2010 - 20:53 #7
Lukker her, skriv endelig hvis i vil have point :P
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