Hallo,

Ik probeer een functie in een script in te bouwen, die een bericht pas laat zien als de vooraf ingevoerde datum is bereikt. Ik heb een invoerveld die de datum alsvolgt weergeeft;


$date_format = 'H:i - d. m. Y';


Die schrijft netjes de gegevens naar de database. nu heb ik een invoervak die ik "embargo" noem, waarin de de datum komt (in hetzelfde formaat als hierboven) waarop het bericht pas zichtbaar mag worden. In de query vraag ik dus alle berichten op waarbij de 2e ingevoerde datum (het embargo) al voorbij is, zodat berichten die over een week pas mogen worden vertoont nog niet worden afgeroepen. Ik vergelijk hem met de dag van vandaag door dezelfde code te gebruiken als hoe hij de datum wegschrijft.Ik heb al van alles geprobeerd om het voor elkaar te krijgen, maar dichterbij als hieronder kom ik niet, en het werkt dus ook nog niet... ;-(


$query = mysql_query("SELECT * FROM $mysql_posts_table WHERE embargo <= 'H:i - d. m. Y' ORDER BY id DESC
        LIMIT $posts_per_page OFFSET $offset");


In afwachting van uw wijsheid....


Groetjes, Jaap
Een datum / tijd zet je in de database, als type DATETIME, alleen dan kan je ook juiste vergelijkingen hiermee uitvoeren.
Voor een overzicht van alles wat je met DATETIME kunt kijk je hier. (ten minste als je MySQL gebruikt.)
Dankjewel, Boaz!!

Ik ga er direct mee aan de slag!!

Ja ik gebruik MySQL!!

Jaap
Als je al gegevens in je database hebt staan die je niet kwijt wil raken heb je hier misschien iets aan.
Er zijn geen belangrijke gegevens, het is nog in de ontwerpfase. Ik ben alleen een werkend script aan het aanpassen.
De hulp-site van mysql staat wel erg vol info. Ik hoop dat ik het goeie er uit weet te halen...
Ja klopt, je kan het eens globaal door lezen en dan weet later waar je moet kijken als je iets nodig hebt. Je kan ook eerst bedenken wat je nodig hebt en het dan gaan zoeken.

succes
Volgens je laatste bericht, de tutorial, wordt de datum verdeeld over meerdere kolommen. Is dat dus essentieel voor een vergelijking zoals je aangaf in je eerste reactie?
In de tutorial, wordt juist uitgelegd hoe je de datum die verdeelt is over meer velden omzet naar een datum veld van het type DATE. Maar in jou geval zou je het naar het type DATETIME moeten omzetten omdat jij ook de tijd gebruikt.

En ja, voor een vergelijking is het essentieel het juiste data type te kiezen.
Nee, dat zou ik juist afraden. Een datum sla je op in een DATE veld en een tijstip (datum + tijd) in een DATETIME veld. Alleen dan kun je de vele datum/tijd functies gebruiken die mysql je biedt.

Zie ook hoofdstuk 12.5 van de mysql handleiding voor deze functies.
Oké, dus het TYPE van de kolom heet nu DATETIME, en nu schrijf ik de gegevens niet meer weg met

$date_format = 'H:i - d. m. Y';


maar met

$date_format = 'DATETIME';


of zie ik dat verkeerd? (Ik ben erg leergierig, maar zeker niet volleerd ;-) dus als ik wel erg simpel overkom spijt me dat )
Huh?

Nee, invoegen in de database doe je in het formaat 'yyyy-mm-dd' eventueel met een tijdstip erachter. En uitlezen uit de database doe je met de functie DATE_FORMAT() van mysql:


SELECT
    DATE_FORMAT(datum, '%d-%m-%Y') AS formatted_date
FROM
    tabel

Reageren