Avatar billede andrew Nybegynder
07. marts 2008 - 17:48 Der er 17 kommentarer og
1 løsning

Given dato før eller efter d.d.

Hej.

Jeg mangler en kode til at returnere sand eller falsk, når der bliver spurgt om en dato er før eller efter dags dato. Fx.:


01-02-2008 < 07-03-2008 = SAND (1)
19-03-2008 < 07-03-2008 = FALSK (0)
05-06-2006 < 07-03-2008 = SAND (1)


Kan nogen hjælpe mig med det? :)
Avatar billede jakobdo Ekspert
08. marts 2008 - 07:50 #1
Og dit datoformat er i: DD-MM-YYYY ?
Er det noget du har i mysql eller i ren PHP ?
Avatar billede andrew Nybegynder
08. marts 2008 - 09:09 #2
Det er en dato fra PHP i format DATETIME. Jeg har fået koden fra sql til php i det format du nævner: DD-MM-YYYY.
Det koden skal gøre, er at den skal kende forskel på en dato før og efter d.d. som nu er 08-03-2008, og udskrive datoen i forskellige farver, som er hhv. før og efter d.d. :)
Avatar billede nielle Nybegynder
08. marts 2008 - 09:16 #3
Det burde kunne gøres direkte i SQL:

$sql = "SELECT * FROM dinTabel WHERE ditDatoFelt >= CURDATE()";
Avatar billede nielle Nybegynder
08. marts 2008 - 09:20 #4
... eller hvis jeg nu læser spørgsmålet grundigt:

$sql = "SELECT ditDatoFelt, (ditDatoFelt >= CURDATE()) AS foerEllerEfter FROM dinTabel";
Avatar billede jakobdo Ekspert
08. marts 2008 - 10:12 #5
CURDATE() eller NOW() kan bruges som dags dato direkte i MYSQL ja.
Avatar billede andrew Nybegynder
08. marts 2008 - 10:48 #6
Tak for indlæggene. Jeg har andre felter liggende i databasen som jeg også kunne tænke mig med. Altså en select *. Kan jeres kode også bruges dertil ? Jeg har en query der ser sådan ud:

$query =  mysql_query("SELECT * FROM gigs ORDER BY time DESC");

Kan den udvides så jeg kan få retureneret "foerEllerEfter" her også ? Og hvordan skal jeg skrive den ud? "$foerEllerEfter"  eller bare som "foerEllerEfter" ?
Avatar billede nielle Nybegynder
08. marts 2008 - 11:31 #7
Sådan:

$query =  mysql_query("SELECT *, (time >= CURDATE()) AS foerEllerEfter FROM gigs ORDER BY time DESC");


PS: Man bør kun bruge * hvis man vitterligt skal bruge alle felterne. Ellers bør man kun skrive navnene på de felter man skal bruge.
Avatar billede jakobdo Ekspert
08. marts 2008 - 11:31 #8
$query =  mysql_query("SELECT *, (ditDatoFelt >= CURDATE()) AS foerEllerEfter FROM gigs ORDER BY time DESC");
while($row = mysql_fetch_assoc($query)){
echo 'Før eller efter: ' . $row['foerEllerEfter'] . '<br />';
}
Avatar billede jakobdo Ekspert
08. marts 2008 - 11:31 #9
Great minds think alike...
Avatar billede andrew Nybegynder
08. marts 2008 - 11:39 #10
Super sejt. Skulle jo også lige kontrollere at der var en dato EFTER d.d. i min db, ellers virker koden ikke rigtig ;)


nielle> Jeg bruger alle mine felter i databasen, men tak for info :)


Tusind tak for hjælpen. Læg et svar..
Avatar billede nielle Nybegynder
08. marts 2008 - 11:41 #11
Svar :^)
Avatar billede andrew Nybegynder
08. marts 2008 - 11:58 #12
jakobdo> Du skal også lægge et svar ;)
Avatar billede jakobdo Ekspert
08. marts 2008 - 18:47 #13
Var lidt i tvivl om jeg havde gjort mig fortjent til point. :o)
Avatar billede nielle Nybegynder
08. marts 2008 - 22:03 #14
:^)
Avatar billede andrew Nybegynder
08. marts 2008 - 22:28 #15
Jeg respektere begge svar. Er meget taknemmelig for jeres hjælp.

Fortsat god weekend :)
Avatar billede andrew Nybegynder
08. marts 2008 - 22:29 #16
hov..
jakobdo> Du skulle også have point.. Det var en fejl. Du må protostere hvis det er :)
Avatar billede nielle Nybegynder
08. marts 2008 - 22:39 #17
Pyt, det ordner vi selv:

http://www.eksperten.dk/spm/822884
Avatar billede andrew Nybegynder
09. marts 2008 - 10:08 #18
Super.. Jeg takker endnu engang for hjælpen. :)
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

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