Over dagsdato

Tags:    php

<< < 123 > >>
Jeg er igang med et cashback site, og er stødt på et problem, kampagnerne skal jo lukke, når en datoen er over udløbsdato.

Har tilføjet et felt der hedder udløbsdato til min db, men hvordan i hulan tjekker jeg det? Har tænkt lidt på:

if($row[udlob] <= now()) { }

Men tror næppe det er rigtigt?

Kan der muligvis være en bedre ting at gøre? Eller en lettere?



Indlæg senest redigeret d. 12.05.2009 16:25 af Bruger #14124
21 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Jeg er igang med et cashback site, og er stødt på et problem, kampagnerne skal jo lukke, når en datoen er over udløbsdato.

Har tilføjet et felt der hedder udløbsdato til min db, men hvordan i hulan tjekker jeg det? Har tænkt lidt på:

if($row[udlob] <= now()) { }

Men tror næppe det er rigtigt?

Kan der muligvis være en bedre ting at gøre? Eller en lettere?

Er udlob i din database et timestamp? For hvis det er, kan du gøre følgende:
[code]
if($row[udlob] <= time()) {
//kampagnen er udløbet
//slet kampagnen, eller sæt den til hidden
}



Indlæg senest redigeret d. 12.05.2009 16:34 af Bruger #7461
Det er fair nok at være ny udi programmering, og det kan ikke være helt nemt i starten. Men du bliver nødt til at bide ordenligt mærke i de ting vi skriver til dig. Det er blevet sagt klart og tydeligt at:
"Feltet i databasen skal være af typen INT for at kunne rumme et timestamp" fordi "MySQL gemmer timestamps af typen TIMESTAMP anderledes, og derfor vil den felttype ikke virke."

Ja, du kan godt lave feltet om til en INT. Det er meget nemt hvis du bruger fx PHPMyAdmin eller lignende til at redigere databasen. Nej, feltet skal ikke være TIMESTAMP - fordi MySQL's TIMESTAMP ser anderledes ud end det UNIX Timestamp som PHP bruger.



Har endnu ikke fundet ud af hvordan jeg bruger timestamp, men den kan da laves om til det. Men det handler jo også om datoen.



Har endnu ikke fundet ud af hvordan jeg bruger timestamp, men den kan da laves om til det. Men det handler jo også om datoen.

Feltet i databasen skal være af typen INT for at kunne rumme et timestamp - MySQL gemmer timestamps af typen TIMESTAMP anderledes, og derfor vil den felttype ikke virke.

time() giver antallet af sekunder siden d. 1. Januar 1970 , og er altså en rimeligt præcis pegepind for datoen og klokkeslettet.



okay, når jeg skal oprette en kampagne til siden, skal jeg jo sætte en udløbsdato, skal den så have et bestemt "design"?



okay, når jeg skal oprette en kampagne til siden, skal jeg jo sætte en udløbsdato, skal den så have et bestemt "design"?

Så skal du bare sætte udløbsdatoen som en time() også.

Hvis du bruger en form til at sætte en udløbsdato som en string, så kan du bruge mktime() til at omdanne en dato/klokkeslet string til et time()-kompatibel timestamp.

http://dk.php.net/mktime



okay, når jeg skal oprette en kampagne til siden, skal jeg jo sætte en udløbsdato, skal den så have et bestemt "design"?


Går udfra du vil lave nogle dropdowns eller noget, sådan du skal indtaste dag, måned og år. Det skal du så have lavet om til et timestamp(som peter skriver, antal sekunder siden 1. januar 1970), det kan du gøre ved hjælp af php's mktime funktion.

Du kan se hvordan den virker her:
http://dk.php.net/mktime



Laver lige tilføj kampagne, også håber jeg en af jer lige vil hjælpe mig videre derfra, med hensyn til dato, for forstår ikke ret med af den der mktime



Her har jeg opretkam:

Fold kodeboks ind/udKode 


og opretkam_ok

Fold kodeboks ind/udKode 


Hvordan vil jeg så kunne gøre?



Ifølge det link vi gav dig tager mktime 6 parametre - time, minut, sekund, måned, dag, år, så du burde kunne få dit timestamp ved at skrive:
Fold kodeboks ind/udKode 




<< < 123 > >>
t