Hi hope someone can help me with the folowing:

    if( $verscil_huwelijksdat_tot_zestien_jaar->format('%R%a') >= 0 )
    {
        echo"bla bla";
    }

dosn't work

it only works when >=1 or <=-1 and wy not >=0 ?

Recommended Answers

All 13 Replies

I'm not sure, but I don't think that that function is returning an integer, which is what you are comparing it against.

I suggest you check out what exactly is being returned by the format() function, e.g.:

var_dump($verscil_huwelijksdat_tot_zestien_jaar->format('%R%a'));

i give you here the code with what i am working with

$huwelijk_date_zestien = new DateTime("$geboorte_datum");
$huwelijk_date_zestien->modify('+16 years');
$huwelijk_date_zestien = $huwelijk_date_zestien->format('Y-m-d');

$dat_huwa = new Datetime("$datum_huwelijk");
$dat_huwelijk_echtgenote = date_format($dat_huwa, 'Y-m-d');

$dat_huwelijk_jaar_echtgenote = date_format($dat_huwa, 'Y');

$geboorte_datum_echtgenote = new DateTime($_POST['geboortedatum']);
$geb_dat_echtgenote = date_format($geboorte_datum_echtgenote, 'Y-m-d');
$geb_jaar_echtgenote =  date_format($geboorte_datum_echtgenote, 'Y');



if($dat_huwelijk_echtgenote > $huwelijk_date_zestien )
{
   $date1=new DateTime("$dat_huwelijk_echtgenote");
   $date2=new DateTime("$huwelijk_date_zestien");
   $verscil_huwelijksdat_tot_zestien_jaar = $date2->diff($date1);

    $date3=new DateTime("$geb_dat_echtgenote");
    $date4=new DateTime("$dat_huwelijk_echtgenote");
    $verschil_tussen_geboortedat_en_huwelijksdat = $date3->diff($date4);

    $date5=new DateTime("$geb_dat_echtgenote");
    $date6=new DateTime("$huwelijk_date_tien_jaar");
    $aantal_dagen_tot_tien_jaar =  $date5->diff($date6);

     }

if($dat_huwelijk_echtgenote < $huwelijk_date_zestien )
     {
       $date1=new DateTime("$dat_huwelijk_echtgenote");
       $date2=new DateTime("$huwelijk_date_zestien");
       $verscil_huwelijksdat_tot_zestien_jaar = $date1->diff($date2);

       $date3=new DateTime("$geb_dat_echtgenote");
       $date4=new DateTime("$dat_huwelijk_echtgenote");
       $verschil_tussen_geboortedat_en_huwelijksdat = $date4->diff($date3);

 }

if(  $verscil_huwelijksdat_tot_zestien_jaar->format('%R%a') <= 1  )
    {

      echo "bla bla";
      die();
    }

if( $verscil_huwelijksdat_tot_zestien_jaar->format('%R%a') >= 0  )
    {
        echo "bla bla";
        die();
    }

O yes
var_dump($verscil_huwelijksdat_tot_zestien_jaar->format('%R%a')); gives nothing on screen when $verscil_huwelijksdat_tot_zestien_jaar->format('%R%a') == 0

You should place the var_dump($verscil_huwelijksdat_tot_zestien_jaar->format('%R%a')); line before the if statement if you want to make sure it is executed :). Does it return an integer, a boolean, or something else? And what exactly?

so i said before it wil return noting on the screen and i did place it before the line if so i see nothing

Member Avatar for diafol

%R%a is from strftime() ?

%R%a is not from strftime() it's from DateInterval::format

i try to give var_dump($date1 == $date2);
and it answers me: bool(true)

Well, according to the examples in the manual, DateDiff::format() does not always return an integer. That's why I said: you should check what it is returning, because you're comparing it against an integer, and you cannot really compare a string value against an integer. If you know what I mean :). Maybe you can find another way to find out if this is what is happening, if var_dump() isn't returning anything (which I find weird, 'cause for as far as I know it always returns something and prints it on the screen).

wel i try to find something else.
about the var dump only return if the date_dif >=1 or <=1 but nothing when date_diff == 0 or >=0 or <=0.

when i
var_dump($verscil_huwelijksdat_tot_zestien_jaar->format('%R%a'));
when date_diff >=1 if gives string(2) "+1" d

Yes, so that basically means that the returned value is NOT an integer, right? :) So that means that you are comparing a non-integer against an integer, which is why your if() statement isn't working as you want it to. I guess you'll first need to convert the returned value ("+1 day") to an integer, and then throw it into your if() statement.

oke i give it a try tomorrow, I have to make a break now i com back tomorrow fot it. Thanks for the help until now.

i got the answer i saw a little mistype i forgot the = in

if($dat_huwelijk_echtgenote < $huwelijk_date_zestien ) in line 32 from the code i give before

it must be

if($dat_huwelijk_echtgenote <= $huwelijk_date_zestien )

and now it is working

Thanks for the help

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.