hallo ene simpel vraagje, maar ik kom er niet uit.
ik heb een inputveld waarin een datum ingevuld moet worden als dd-mm-yyyy. deze moet weg geschreven worden als yyyy-mm-dd in de mysql database. Hoe kan ik deze makkelijk converteren in een (zelfgemaakte) functie?
ik zit namelijk ook een beetje met het feit dat een datum op twee manieren ingevuld kunnen worden, als 04-03-2007 en als 4-3-2007.
Ga alsjeblieft geen timestamps in een database gebruiken. Gebruik gewoon een DATE veld voor een datum!
Maar goed, om de datum om te zetten:
<?php
$datum = 'dd-mm-yyyy';
$dmj = explode('-', $datum);
$db_datum = $dmj[2].'-'.$dmj[1].'-'.$dmj[0];
?>
Zoiets zou je kunnen gebruiken.
Hmmz, ik dacht altijd dat mysql het wel snapte als ik een timestamp gaf voor een dateveld, maar dat heb ik net voor de zekerheid nog eens getest, maar blijkbaar dus niet .. fck
@ Baarr: nee, een timestamp is heel iets anders dan een datum.
@ TS: ik laat users liever niet zelf een datum invullen in een textveld. Het is vragen om moeilijkheden. Het is handiger om bijvoorbeeld drie selectboxen te maken met de goede values in de options. Daarna controleer je nog met [php]checkdate[/php] of het een geldige datum is (zodat ze niet 31 februari in kunnen vullen)
ja het wordt een simpele website voor een vriend van mij, dus er zal maar 1 gebruiker zijn. dus voor foute invoeren hoef ik niet zoveel erg bang te zien, normaliter zal ik ook geen datum zelf laten invullen, maar nu is het even snel en makkelijk. heel erg bedankt voor de reacties!
@ Baar: het is precies andersom. Een timestamp is gebaseerd op een datum; het aantal seconden vanaf 1 januari 1970.
Hoe het intern opgeslagen wordt doet er niet toe. Wat je er als gebruiker mee kunt wél. En met een datum kun je veel meer dan met een timestamp.
Ik zal je een voorbeeld geven. Wolfgang Amadeus Mozart leefde van 27 januari 1756 tot 5 december 1791. Kun jij een script voor me maken dat berekent hoeveel dagen hij geleefd heeft? Je mag uitsluitend timestamps gebruiken ;-)
SELECT
DATEDIFF(sterfdatum, geboortedatum) AS leeftijd_in_dagen
Met een mysql_query zou ik TO_DAYS gebruiken en ze van elkaar aftrekken. Is wellicht betere methode voor.
TO_DAYS kun je twee dingen voeren, een timestamp of een datum. We hadden afgesproken dat je met timestamps zou werken. Helaas beginnen die pas vanaf 1970. Je tweede methode zou dus ook niet kunnen.