Datetime, oude datum
daarbij moet ook de datum verrandert kunnen worden. Daarom zijn 3 invoer vakken gegeven die de variabele:
$ddag, $dmaand, $djaar
geven. Deze moeten naar een UNIX timestamp geconverteerd worden zodat deze bij de tabel gebruikt kunnen worden voor het sorteren.
ik heb al verschillende voorbeelden geprobeerd maar kom er niet uit. (mktime of strtotime)
op dit moment heb ik dit naar het voobeeld van Jan Koehoorn:
setlocale (LC_ALL, 'nl_NL'); // zet de notatie op Nederlands
Code (php)
1
2
3
4
2
3
4
<?php
$mysql_datum = ($djaar-$ddag-$dmaand); // een datum zoals MySql hem levert
$datum = strtotime ($mysql_datum); // converteren naar een UNIX timestamp
?>
$mysql_datum = ($djaar-$ddag-$dmaand); // een datum zoals MySql hem levert
$datum = strtotime ($mysql_datum); // converteren naar een UNIX timestamp
?>
dit werkt alleen niet, ik zal wel iets verkeerd doen.
ik heb nu ook
geprobeerd, maar dit helpt niet. misschien helpt dat alleen als je het doet met date() erbij om een andere notatie wijze toe te passen.
edit: ik heb net even dit getest:
echo strtotime ('2005-05-12');
echo '<br>';
echo strtotime ('12 may 2005');
Geeft bij mij dezelfde uitkomst (1115848800)
Gewijzigd op 15/12/2005 08:48:00 door Jan Koehoorn
<form method="get" action="verwerkedit.php">
<label>
<input type="text" name="naam</label>
...
Overigens klopt je label ook niet. Een label werkt zo:
<label for="veld1">veld1:</label>
<input id="veld1" name="veld1" type="text">
Het hele punt van een label is, dat wanneer een user er op klikt, het element waar het label naar verwijst de focus krijgt. Dat doe je met for="veld1".
echo strtotime ('12 mei 2005');
strtotime verwacht namelijk een Engelse notatie voor maandnamen en weekdagen.
<label for="veld1">veld1:</label>
<input id="veld1" name="veld1" type="text">
$veld1
over die engelse notatie. als je een array maakt met daarin alle engelse maandnamen, dan kan je het maandgetal van een nederlandse notatie naar een engelse maand brengen. zou dan wel:
$datum = strtotime ($djaar-$ddag-arraym('$dmaand"))
werken?
Geeft bij mij 1115921100, is dus een andere uitkomst dan net.
De variabele wordt $veld1?
Volgens mij is die UNIX-timestamp helemaal niet nodig.
checkdate nogal onhandig.
@ Frank: dat sowieso. Wat gebruik jij trouwens om een datum te valideren? Ik vind Gewijzigd op 15/12/2005 11:42:00 door Jan Koehoorn
Maar wat vind jij er zo onhandig aan?
Offtopic: Hoe zet jij dit hyperlinks hier in het forum? Ik krijg er alleen tekst in...
1) www.pagina.nl [ / url ]
2) [ url = www.pagina.nl ] tekstlink [ / url ]
en dan zonder spaties tussen de brackets
Wat ik er onhandig aan vind is dat je hem een rare volgorde moet voeren en weer alles uit moet splitsen. MySQL zou eigenlijk een interne check moeten hebben.
Die volgorde is inderdaad wat vreemd, maar voor mij geen groot probleem. Wanneer je 3 dropdownlistjes (jouw voorkeur) gebruikt, heb je al 3 verschillende variabelen. Gebruik je een textfield (mijn voorkeur), dan heb je toch al explode() nodig en krijg je ook 3 verschillende variabelen. Maar het blijft een knullige volgorde. Wie dat bedacht heeft?
En inderdaad, de database hoort ook een controlefunctie te hebben. Nu loop je het risico van corrupte data in je db. Daar wordt geen enkele dba vrolijk van.
$datum = date ("d-m-Y", mktime (0,0,0,$maand,$ddag,$djaar));
Ja, of $datum = strtotime ($ddag.'-'.$dmaand.'-'.$djaar);
en als ik het volgens:
$datum = strtotime ($ddag.'-'.$dmaand.'-'.$djaar);
deze manier doe:
0000-00-00
Oh wacht, schreef jij niet $maand? Dus zonder d ervoor?
zodat ik overzicht hou in voorlbeelden als toevallig iets ook maand heet.
niet 12-12-2005 in plaats van 2005-12-12. Zou het niet zo moeten?
werkt ook niet. maar is dit misschien niet een string?
ik heb namelijk een unix timestampformaat nodig.
voor de huidige datum is dat
$datum=date("Y-m-d");
maar hoe doe je het voor datums die eerder zijn?
Waarom heb je die unix timestamp nodig? 9 van de 10 keer is dat echt niet nodig en ben je omslachtig bezig. By the way, waar komt die datum vandaan? Uit een database?