Ik ben bezig een nieuwsform te maken. Om de admin daarvan enige hulp te bieden moeten oude nieuws mysql entries gewijzigd worden.
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
<?php
$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.
is er iemand die een idee heeft.
ik heb nu ook
<?php
$datum = mktime(0,0,0,$ddag,$dmaand,$djaar)
?>
geprobeerd, maar dit helpt niet. misschien helpt dat alleen als je het doet met date() erbij om een andere notatie wijze toe te passen.
Hoi Maarten, die invoervakken, zijn dat tekstvakken of selectboxen?

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)
volgens mij zijn het invoer vakken. de code van één is als volgt:
<form method="get" action="verwerkedit.php">
<label>
<input type="text" name="naam</label>
...
Ja, dus inputs type text. Da's niet zo'n handige methode om datums in te voeren. Je kunt het aantal mogelijkheden beter beperken door selectboxen met options te gebruiken.

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".
Nog even een test gedaan, en dit gaat fout:

echo strtotime ('12 mei 2005');

strtotime verwacht namelijk een Engelse notatie voor maandnamen en weekdagen.
wordt dan de variabele bij
<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?
echo strtotime ('2005 12 may');

Geeft bij mij 1115921100, is dus een andere uitkomst dan net.

De variabele wordt $veld1?
Waarom heb je een UNIX-timestamp nodig om te sorteren? De database kan prima sorteren op een DATE of DATETIME, geen enkel probleem hoor.

Volgens mij is die UNIX-timestamp helemaal niet nodig.
@ Frank: dat sowieso. Wat gebruik jij trouwens om een datum te valideren? Ik vind checkdate nogal onhandig.
@Jan: met checkdate() ;-)

Maar wat vind jij er zo onhandig aan?

Offtopic: Hoe zet jij dit hyperlinks hier in het forum? Ik krijg er alleen tekst in...

Reageren