Hoi

25-09-2015 00:00:00
04-10-2015 00:00:00
05-10-2015 00:00:00
08-10-2015 00:00:00

Waarom is de eerste datum niet kleiner dan de volgende 3?


if ($date_0 < $date_1_2) {
	$voorkeur_1 = $_POST['voorkeur1']. " ".$_POST['vkeur1o']." ".$_POST['vkeur1m'];
} else {
	$error .= "Let op 1ste voorkeursdatum. Graag 4 dagen na AED aanhouden<BR>";
}
if ($date_0 < $date_2_2) {
	$voorkeur_2 = $_POST['voorkeur2']. " ".$_POST['vkeur2o']." ".$_POST['vkeur2m'];
} else {
	$error .= "Let op 2de voorkeursdatum. Graag 4 dagen na AED aanhouden<BR>";
}
if ($date_0 < $date_3_2) {
	$voorkeur_3 = $_POST['voorkeur3']. " ".$_POST['vkeur3o']." ".$_POST['vkeur3m'];
} else {
	$error .= "Let op 3de voorkeursdatum. Graag 4 dagen na AED aanhouden<BR>";
}
Omdat 25 groter is dan die anderen.
Gebruik format YYYYMMDDHHmmss
pffff... wat belachelijk... ok, ik zal dat eens proberen. Dacht dat het bij data niet uit zou maken.

[size=xsmall]Toevoeging op 02/10/2015 13:57:51:[/size]

Sjemig zeg..dat was het.. Thnx!
Simpelweg omdat je iets niet begrijpt maakt het nog niet fout.

De bovenstaande datum (25-09-2015 00:00:00) is een string. (EDIT daarbij: alle data uit $_GET, $_POST etc. zijn per definitie strings)

Strings volgen een andere sortering dan getallen.

Als je had gedaan wat SanThe voorstelt (het formaat YYYY-MM-DD gebruiken) dan waren deze twee sorteringen gelijk geweest. Dat formaat is niet voor niets een (ISO?) standaard.

Het beste is altijd om data in zijn "rauwe" variant op te slaan. Formattering in een of andere vorm doe je bij het afdrukken. Er zijn legio functies om een standaard datum formaat om te zetten naar een custom (en voor mensen prettiger leesbaar) formaat.

Maar het is goed dat je hier tegenaan loopt, hopelijk ben je in de toekomst wat voorzichtiger met (of in ieder geval wat meer bewust van) het kiezen van de vorm van de data die je gebruikt.
Als je het omzet naar een time kan het wel met elk formaat:

<?PHP
$datum1 = strtotime('25-09-2015 00:00:00');
$datum2 = strtotime('04-10-2015 00:00:00');


if($datum1 < $datum2)
{
echo "Datum 1 is kleiner dan datum 2";
}
?>
Nou.. het was geen string en het was wel degelijk een datum echter ik heb de opmaak eerder dan de vergelijking aangepast naar NL. Dat is ook het enige wat ik heb aangepast.

>> Nou.. het was geen string

Wat was het volgens jou dan wel?
Hoe kunnen wij dit weten als je in je (onvolledige) codefragment niet vertelt wat $date_0, $date_1_2, $date_2_2, $date_3_2 voor waarden bevatten, van wat voor type / klasse ze zijn en waar deze vandaan komen?

Doe eens een var_dump() zou ik zeggen.
Edgar de Groot op 03/10/2015 16:56:54

Nou.. het was geen string en het was wel degelijk een datum echter ik heb de opmaak eerder dan de vergelijking aangepast naar NL. Dat is ook het enige wat ik heb aangepast.




En daarmee heb je er dus een string van gemaakt.
Ik snap de discussie niet.
De allereerste reactie is van SanThe èn is dè oplossing.
Is hij dan zo slim of... Nou ja, laat ik die zin maar niet afmaken.
Onnodige discussie dit in ieder geval.

Nogmaals SanThe bedankt voor de oplossing.
De rest ook bedankt voor het meedenken.
Santhe geeft de oplossing.
Thomas, Ozzie en ik geven de oorzaak aan.

Zodat je volgende keer wel weet waar het aan ligt.
Santhe vergelijkt namelijk nog steeds strings met elkaar. Dat kan prima bij formaat YYYYMMDDHHIISS, want dat is gewoon een groot nummer.

Reageren