Extracting a value form an object

I’m trying to get the number of days between two dates with

$date = date_diff($d1, $d2);

which returns an object:

object(DateInterval)#3 (16) { [“y”]=> int(108) [“m”]=> int(2) [“d”]=> int(22) [“h”]=> int(0) [“i”]=> int(0) [“s”]=> int(0) [“f”]=> float(0) [“weekday”]=> int(0) [“weekday_behavior”]=> int(0) [“first_last_day_of”]=> int(0) [“invert”]=> int(0) [“days”]=> int(39529) [“special_type”]=> int(0) [“special_amount”]=> int(0) [“have_weekday_relative”]=> int(0) [“have_special_relative”]=> int(0) }

How do I extract the int number of days?

If you only care about the absolute difference, just use $date->days.

If the +/- matters, you need to take into account the invert property. This is best handled using the ->format() method, with either the R (+/-) or r (just the -) and the a format specifiers -

echo $date->days; // 39529
echo $date->format('%R%a'); // +39529
echo $date->format('%r%a'); // 39529
2 Likes