Avatar billede sorensen_123 Nybegynder
06. februar 2008 - 18:59 Der er 11 kommentarer og
1 løsning

Udregn om post er for gammel.

Hejsa,

Jeg skal have udregnet om en bestemt post er for gammel, dvs. jeg skal have en "if" og tjekke om den er ældre end nuværende dato. Hvis den er det, skal der stå "Lukket", og hvis den ikke er, skal der stå "Åben".

Jeg har prøvet en masse, også at konvertere datoen med strtotime, men hvis posten er i en ny månede (f.eks. 1/3/2008 og man kun er i januar, så står den stadig som lukket).

Sluttiden i tabellen hedder står sådan: 15/02/2008 10:20
Og den aktuelle dato, kan så f.eks. være: 06/02/2008 19:00

Hvordan kan jeg få udskrevet om aktuelle tidspunkt er større end sluttiden (og derved er posten lukket) på den letteste måde?
Avatar billede erikjacobsen Ekspert
06. februar 2008 - 20:46 #1
Dit felt er ikke af typen DATETIME?
Avatar billede sorensen_123 Nybegynder
06. februar 2008 - 21:53 #2
Nej, den er VARCHAR, men indlæser jo datoerne i en variabel hver, så kan ikke se hvad DATETIME kunne gøre, eller er der en endnu smartere måde at gøre det på??
Avatar billede erikjacobsen Ekspert
06. februar 2008 - 21:58 #3
Datoer i en tabel i en database bør altid være i databasens naturlige format for datoer. Så vil du i din select-sætningn direkte kunne bede om de rækker, hvor datoen er større eller mindre end en anden dato. Når man så skal vise datoen, eller lægge den ind fra noget der tastes ind, så skal der byttes lidt rundt på måned, år og dag.
Avatar billede sorensen_123 Nybegynder
06. februar 2008 - 22:06 #4
ja, men vil jo have den til at udskrive om den er åben eller lukket. hvordan gør jeg det via min select?
Avatar billede erikjacobsen Ekspert
06. februar 2008 - 22:14 #5
Hvis du vil beholde dit mærkelige datoformat i dit varchar-felt, så må du jo næsten i gang med diverse streng-rutiner i PHP for at ændre fx "1/3/2008" til "2008-03-01", så kan du direkte sammenligne datoerne. Men det er da noget af et mandagshack i stedet for at gøre det rigtigt.
Avatar billede sorensen_123 Nybegynder
07. februar 2008 - 10:46 #6
Kan godt selv lave koden til at lave det om, men kunne godt tænke mig et eksempel der sammenlignede den dato+tid i databasen med aktuelle dato+tid i det format der er bedst. :o) forhøjer til 100 point, og så håber jeg at få et eksempel :o)
Avatar billede erikjacobsen Ekspert
07. februar 2008 - 10:57 #7
et eksempel? På hvad? På hvordan man laver "1/3/2008" til "2008-03-01"?
Avatar billede sorensen_123 Nybegynder
07. februar 2008 - 11:19 #8
Nej, det kan jeg sagtens :o)

På hvordan man sammenligner aktuelle dato med den i databasen, og siger om den er lukket eller åben :)
Avatar billede erikjacobsen Ekspert
07. februar 2008 - 11:28 #9
Hvis du har "1/3/2008" stående i feltet i din tabel, så laver du det om til "2008-03-01" fx med PHP. Så har du derefter dags dato regnet ud med http://php.net/date funktionen, på samme form.

Nu kan du nemlig sammenligne direkte:  "2008-03-01" > "2008-02-07"  giver nemlig true.
Avatar billede sorensen_123 Nybegynder
07. februar 2008 - 11:36 #10
ok. men virker det også hvis man har tid på, eller skal man regne det efter if'en ?
Avatar billede erikjacobsen Ekspert
07. februar 2008 - 12:17 #11
Hvis du har tid på, skal den med: "2008-03-01 19:00:00" > "2008-02-07 12:17:00"
Avatar billede sorensen_123 Nybegynder
14. november 2008 - 20:53 #12
Lukker :)
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