Avatar billede lborkdk Nybegynder
23. oktober 2010 - 22:37 Der er 5 kommentarer og
1 løsning

Unix timestamp 1 dag

Hej eksperten.dk

jeg bruger Unix timestamp til min online Counter for at tjekke om folk er inaktive, har så været i gang med et lotteri system til min side og skal lige høre om denne løsning virker eller om der er nogen af jer der har en reddere ide.

Min ide er:

if (// hvis mit lotteris timestamp er 24 timmer gammelt)
{
mit lotteri script hvor man kan vælge 4 tal og trykke spil og så bliver ens 4 cifrede tal gemt i db og der bliver trukket nogen point fra ens konto og lagt til puljen.
}
else
{
Hvis der er gået 24 timer siden Unix timestamp blev opdateret bliver der lavet et random 4 cifret tal og vis der er en bruger som har ramt det tal får han puljen og Unix timestamp bliver opdateret, og vis der ikke er nogen vindere så skal den kun opdatere timestamp.
}

Håber ikke det lyder forvirende...

Jeg har selve lotteri scriptet det eneste jeg skal ha hjælp til at lave er:

<?php
if(bla bla bla)


else


?>
Avatar billede webweaver Praktikant
24. oktober 2010 - 00:21 #1
Det fede ved Unix Epoch er jo at man rigtig nemt kan gå frem og tilbage i tiden. Hvis du har det i databasen som et tal i sekunder (Unix Epoch), er det bare at hente det ud af databasen og så trække 24 timer fra i sekunder.

Dog får jeg ikke dine if sætninger til at give mening.
Først spørger du om hvis lotteriet's time er 24 timer gammelt, skal der ske noget..
Og så i din else, spørger du igen om hvis det er 24 timer gammelt, skal der ske noget andet...

Det giver ikke rigtig mening.

Virker mere som om at den første if skal være, at hvis lotteriet's timestamp, IKKE er over 24 timer gammel, skal man kunne "spille". Nå der så er gået 24 timer, vil den trække lod.

Det kunne se således ud;

udtræk fra database og så videre...
Du ender op med tallet i sekunder her (din timestamp).

$checkTimeNow = time() - (60 * 60 * 24); // Sekunder x minutter x timer.

if ($lotteriTime <= $checkTimeNow) { // Hvis timestamp er 24 timer gammel eller mere.
Dit kode her .. Den trækker lod..
} else {
Folk kan spille på deres tal indtil der er gået 24 timer fra start af.
}

Men du skal jo huske på, at det er PHP. Det bliver ikke udført automatisk. Der bliver ikke trukket lod om et random tal, før en person går ind på siden, så koden bliver eksekveret.

Og hvis du først går ind på siden, får du et random tal.
Hvis jeg så går ind bagefter fx, får jeg et andet random tal.

Det vil ikke være det samme lotto tal for alle. Men det er måske heller ikke meningen?

Det kan det dog sagtens være, men så skal du bare gemme tallet som der bliver udtrukket og så vise det til folk efter 24 timer...
Avatar billede webweaver Praktikant
24. oktober 2010 - 00:57 #2
Og jeg må være lidt træt. Time() skal være mktime() :-)
Avatar billede webweaver Praktikant
24. oktober 2010 - 01:03 #3
Jeg må faktisk være meget træt :S
Det er ligegyldigt om du bruger den ene eller anden anden kom jeg i tanke om. De giver samme værdi. I det her tilfælde, bør du bruge time(); dog.

Godnat! hehe ...
Avatar billede lborkdk Nybegynder
24. oktober 2010 - 01:12 #4
tak for det hurtige svar :)

Ser på det i morgen tidlig så bare smid et svar så får du point hvis det virker..

Godnat...:D
Avatar billede webweaver Praktikant
24. oktober 2010 - 11:29 #5
Det skulle det meget gerne gøre. Ellers er det en tastefejl.. :-)
Avatar billede lborkdk Nybegynder
24. oktober 2010 - 12:52 #6
Det virker super godt, mange tak :)
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