Avatar billede artico Novice
19. april 2006 - 10:56 Der er 9 kommentarer og
1 løsning

dato skal være <

Jeg forsøger at skjule en vare hvis en dato er mindre end dagsdato, men det virker ikke :-(

Jeg har:
$dagsdato = date('j-m-Y');

og i DB udtrækket:
AND tilbud_slutter < '$dagsdato'

Men det virker ikke ?? Hvad gør jeg forkert ?
Avatar billede erikjacobsen Ekspert
19. april 2006 - 11:00 #1
Du kan ikke bruge < på en dato på det format. Du skal bruge 'Y-m-d' og tilbud-slutter skal være på samme format, dvs. typen DATE.
Avatar billede erikjacobsen Ekspert
19. april 2006 - 11:01 #2
...hvis vi antager du bruger MySql...
Avatar billede artico Novice
19. april 2006 - 11:14 #3
Øv, det er fordi datoen kommer ind i DBén i formatet 19-04-2006 med et javascript der er ret smart, så er der en anden måde jeg kan gøre det på hvis udgangspunktet er at datoen i DBén er 19-04-2006
Avatar billede erikjacobsen Ekspert
19. april 2006 - 11:26 #4
Det er da godt du har et smart javascript ;)  Og det er også rigtig fint at brugeren ser datoen som han/hun gerne vil have det. Så langt så godt. Tilbage er kun at lave den om så den passer til databasen, og de operationer der er der - altså bytte om til 'Y-m-d' ved skrivning og ved læsning den anden vej. Man kan måske lave et hack, hvis det er et lille legetøjssystem, du arbejder med, men det kan ikke anbefales.
Avatar billede artico Novice
19. april 2006 - 11:37 #5
Ok.. har forstået budskabet....
Når datoen skal ind i dbén kommmer den med: $_POST['tilbud_slutter'] i formatet 19-04-2006 det skal så laves om inden det skal ind i DBén :( øhh hvordan?
Avatar billede erikjacobsen Ekspert
19. april 2006 - 11:43 #6
Du kan bruge et regulært udtryk, og samtidig tjekke at brugeren ikke er ude på at snyde dig ;)  Sådan ca.:

  $dato = '19-04-2006';

  if (preg_match('/^(\d+)-(\d+)-(\d+)$/',$dato,$r)) {
    $dato="$r[3]-$r[2]-$r[1]";
  } else {
    $dato='0000-00-00';  // det var en ulovlig dato
  }

  print "$dato\n";
Avatar billede coderdk Praktikant
19. april 2006 - 11:43 #7
list( $d, $m, $y ) = explode( "-", $_POST['tilbud_slutter'] );
$dato = "$y-$m-$d";
Avatar billede artico Novice
19. april 2006 - 12:55 #8
Tak, det virker, jeg har brugt lidt fra jer begge... kom med svar...
Avatar billede erikjacobsen Ekspert
19. april 2006 - 15:48 #9
Jeg samler slet ikke på point, tak.
Avatar billede artico Novice
19. april 2006 - 19:44 #10
Tak 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
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