Ik wil datums vergelijken. No1 komt ut de database als DATE. No2 komt van een form (text) Ik krijg deze niet vergeleken en weet niet welke functies ik er op los moet laten om dit wel voor elkaar te krijgen. Het gaat in dit geval om de beschikbaarheid van mensen in de database te vergelijken met de gevraagde beschikbaarheid van diegene die het formulier invult.

Alvast bedankt
Hoi Edwin,

een MySQL DATE heeft het format yyyy-mm-dd
Je moet er dus voor zorgen dat de waarde die je uit het formulier krijgt er ook zo uit ziet. Heb je een codevoorbeeld van je formulier?
edit dubbele post als gevolg van het gebruiken van de back button :S
Onderstaand de input. Ik snap wel dat het formulier tekst genereerd en de database een datum, dus dat zal zo niet werken. Hoe kan ik de tekststring omzetten naar een datum. Waar ik ook van gehoord heb is dat je een datum kunt omzetten naar de seconden geteld vanaf het 'UNIX-begin' Kan ik daar wat mee?

<input type='text' name='dat1' value='$_POST[dat1]' size='10' class='tekst'>

Stukje uit de $sql string. Hier wil ik de datum uit de database vergelijken met de invoer van het formulier.

Bsb_vanaf > $dat1

Gr,

Edwin
Jan bedoelt dat je de datum in het textveld dan ook in moet voeren als yyyy-mm-dd, of je moet na de submit de datum omzetten naar dat formaat, en dat kan op vershillende manieren.
De datum voer ik ook zo in, en toen? Het blijft toch tekst? en uit de database een datum
Hoi Edwin,

gebruikers op deze manier een datum laten invoeren kan wel, maar dan moet er een check op komen. Ten eerste moet je in je formulier een berichtje naar het invulveld zetten. Iets in de trant van: (jjjj-mm-dd), met een voorbeeld erbij hoe het moet, bijv 2005-05-01

Je kunt er namelijk van uit gaan dat mensen andere dingen in gaan vullen.

Je kunt twee datums pas vergelijken als de formats hetzelfde zijn. Verder moet je specifieker omschrijven wat je bedoelt met 'vergelijken'. Wil je weten of de ene datum groter of kleiner of gelijk is aan de andere? Wil je het verschil weten, in dagen, weken, of maanden?
IkWat ik wil weten is of iemand beschikbaar is vanaf een bepaalde datum: Bijvoorbeeld: Iemand heeft zich ingeschreven en is beschikbaar van 01-01-2005 tot en met 31-21-2005. Als ik dan iemand zoek die beschikbaar is vanaf 31-12-2004 voldoet deze inschrijving niet.

Verder zou het inderdaad mooier zijn als de datum op "onze" wijze staat genoteerd (dd/mm/jjjj) en dat dit bij de invoer wordt gecheckt. Maar eerst maar de vergelijking voor elkaar krijgen. en dan de invoer.

Hopelijk zo iets duidelijker
Ja, een stuk duidelijker. Als je de beschikbaarheidsgegevens van mensen in een MySQL database zou hebben staan, zou je alle mensen die beschikbaar zijn vanaf een bepaalde datum kunnen opvragen met een statement als dit:

SELECT naam
FROM mensen
WHERE gevraagde_datum BETWEEN beschikbaar_van AND beschikbaar_tm
En het formaat van gevraagde_datum? Dit is neem ik aan afkomstig vanuit het formulier. Dit gaat dan goed? Het blijft een tekst-formaat.
Het formaat van de gevraagde datum moet in dit geval het format jjjj-mm-dd hebben.

Dat kun je op twee manieren aanpakken:

1) mensen laten invullen wat ze willen en dat omzetten naar het juiste format met strtotime ()

2) werken met drie selectboxen voor dag, maand en jaar

Reageren