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.
@ Frank: voor hyperlinks, twee methoden:

1) [ url ] 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.
@Jan: Bedankt! Helemaal duidelijk.

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.
ik denk dat het volgende goed is:
$datum = date ("d-m-Y", mktime (0,0,0,$maand,$ddag,$djaar));
Ja, of $datum = strtotime ($ddag.'-'.$dmaand.'-'.$djaar);
het werkt nog niet helemaal.als ik de datum van gisteren 14-12-2005 invoer krijgt de database 2030-04-20 eruit.
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?
nee, ik schrijf wel met een d er voor; $dmaand
zodat ik overzicht hou in voorlbeelden als toevallig iets ook maand heet.
Ik wil niet vervelend zijn Jan, maar geeft:
<?php
$datum = strtotime ($ddag.'-'.$dmaand.'-'.$djaar);
?>
niet 12-12-2005 in plaats van 2005-12-12. Zou het niet zo moeten?
<?php
$datum = strtotime ($djaar.'-'.$dmaand.'-'.$ddag);
?>
net getest,
<?php
$datum = strtotime ($djaar.'-'.$dmaand.'-'.$ddag);
?>
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?

Reageren