Hoi,

Ik heb deze code:

$dat1 = date('j-m-Y', strtotime($_POST['datum_afspraak']));
$dat2 = date('j-m-Y', strtotime($datum));

$dat3 = ($dat1 - $dat2);

if (!empty($_POST['datum_afspraak']) && ($dat3 >= 0)) {
$datum_afspraak = $_POST['datum_afspraak'];
$_SESSION['datum_afspraak'] = $_POST['datum_afspraak'];

Dit zou moeten bepalen of de afspraak na vandaag is gemaakt. Maar als ik de datum voor november kies, dan accepteert hij hem niet. Binnen dezelfde maand gaat het goed maar nu het morgen 1 november is, pakt hij niets.
Ik neem aan dat het hem zit in het aftrekken van elkaar maar dat zou toch niet mis mogen gaan lijkt mij... in de db staat ie gewoon als DATE en wat in het formulier wordt gestuurd is: 01-11-2014

SELECT datum, (datum > CURRENT_DATE) AS intoekomst
FROM tabel
-- WHERE datum > CURRENT_DATE


of in php
<?php
$datum = new datetime($_POST['datum_afspraak']);
if($datum > new datetime() ) {
echo 'in toekomst';
}
?>
dank je Ivo... ik ga beide mogelijkheden ff proberen hoewel ik de DB versie niet kan gebruiken aangezien het niet in de db staat :)

die 2de ziet er goed uit. Dus die ga ik ff testen

[size=xsmall]Toevoeging op 31/10/2014 16:17:54:[/size]

Yes! hij doet het... heb er wel van gemaakt >= want afspraak mag ook vandaag :)
Dank je wel Ivo!!!

[size=xsmall]Toevoeging op 31/10/2014 17:46:38:[/size]

helaas, het werkt toch nog niet.. dit heb ik nu:

$dat1 = new datetime($_POST['datum_afspraak']);
if($dat1 >= new datetime() ) {
$datum_afspraak = $_POST['datum_afspraak'];
$_SESSION['datum_afspraak'] = $_POST['datum_afspraak'];
} else {
$_SESSION['datum_afspraak'] = $_POST['datum_afspraak'];
$error .= "* Geef juiste datum op<BR>";
}
Met de datum van vandaag loopt hij nu mis.

Enig idee?
Oh... ik denk dat ik hem al snap... jij had hem direct al goed. > groter dan dus... omdat alleen datum wordt gepost en geen tijd, begint hij de dag op 00:00:00 en dus is alles van vandaag en morgen groter dan...

lol :)

[size=xsmall]Toevoeging op 03/11/2014 08:31:46:[/size]

oh... helaas... dus toch niet... sjee, ik moet leren eerst testen dan pas reageren :)
probeer eens:

if($datum > new datetime('yesterday'))
Zo simpel kan het soms zijn...:)
Thnx Ivo!!
Lijkt mij beter om de tijd expliciet op nul te zetten als je alleen de datum wilt vergelijken:

<?php
$datum = new datetime($_POST['datum_afspraak']);
$datum->setTime(0,0);

$vandaag = new datetime();
$vandaag->setTime(0,0);

echo $datum->format('d-m-Y H:i:s');
echo $vandaag->format('d-m-Y H:i:s');

if($datum >= $vandaag ) {
echo 'in toekomst';
}
?>

Na een testje blijkt dat 'yesterday' inderdaad ook de tijd op nul zet, dus dat kan ook maar je hebt dan wel de datum van een dag eerder te pakken.
en '2014-11-02 10:00' is groter dan '2014-11-02' (yesterday).

Dus mocht je bij de invoer een tijd meekrijgen dan is dat niet handig.

Mogelijk dat new datetime('today') oid een betere was geweest (geen idee of 'today' eigenlijk bestaat....)
nou... ik moet idd een en ander met elkaar vergelijken en datetime kende ik nog niet.
Hij is wel erg handig...
Dus ik duik er ff in
Er gaat toch weer iets mis...


<?php		$oranjevan = date('H:i', strtotime($row_afdtba['tijd_vervolg_1']));
		$oranjetot = date('H:i', strtotime($row_afdtba['tijd_vervolg_2']));
		$oranjedat = date('Y-m-j', strtotime($row_afdtba['datum_vervolg']));
		$oranjedatnu = date('Y-m-j');
		$oranjenu = date('H:i');
		
		$vergelijk_datum_nu = new DateTime('now');
		$vergelijk_datum_1 = new DateTime($oranjevan);
		$vergelijk_datum_2 = new DateTime($oranjetot);
		$vergelijk_datum_next = new DateTime($oranjedat);
		
		
		if ($vergelijk_datum_nu->format('d-m-Y') == $vergelijk_datum_next->format('d-m-Y') && $vergelijk_datum_nu->format('H:i:s') > $vergelijk_datum_1->format('H:i:s') && $vergelijk_datum_nu->format('H:i:s') < $vergelijk_datum_2->format('H:i:s'))
			{	echo "bgcolor=#DB704D";	// oranje
			}
		if ($vergelijk_datum_nu->format('d-m-Y') >= $vergelijk_datum_next->format('d-m-Y') && $vergelijk_datum_nu->format('H:i:s') > $vergelijk_datum_2->format('H:i:s'))
		    {	echo "bgcolor=#BF1919"; // rood
	        }
	    if ($vergelijk_datum_nu->format('d-m-Y') == $vergelijk_datum_next->format('d-m-Y') && $vergelijk_datum_nu->format('H:i:s') > $vergelijk_datum_2->format('H:i:s'))
		    {	echo "bgcolor=#BF1919"; // rood
	        }
	    if ($vergelijk_datum_nu->format('d-m-Y') > $vergelijk_datum_next->format('d-m-Y'))
		    {	echo "bgcolor=#BF1919"; // rood
	        }
	    if ($vergelijk_datum_nu->format('d-m-Y') < $vergelijk_datum_next->format('d-m-Y')) 
	        {   echo "bgcolor=#8DE28D"; // groen
    		}
		if ($vergelijk_datum_nu->format('d-m-Y') == $vergelijk_datum_next->format('d-m-Y') && $vergelijk_datum_nu->format('H:i:s') < $vergelijk_datum_1->format('H:i:s')) 
	        {   echo "bgcolor=#8DE28D"; // groen
    		}?>


Waarom gaat het nu toch weer mis met datum van de volgende maand? 1 dec wordt rood gekleurd. en die zou toch echt groter moeten zijn dan "nu"
omdat je de geformateerde datums en niet de datums zelf vergelijkt:


if($datum1 > $datum2)

tegen

if($datum1->format('d-m-Y') > $datum2->format('d-m-Y'))

ofwel
if('31-12-1900' > '1-12-2014')

dan is 3 inderdaad groter dan 1 ookal gaat het om meer dan 100 jaar....

Reageren