2008/7/31 <[EMAIL PROTECTED]>: > The DateInterval class needs to have a new method added to it to display the > actual difference between the dates (2 days. 10 months. 3 years). > Or date_diff returns a string e.g <?php echo date_diff($date, $other_date); > ?> would output 3 days > -------------------------------------------------- > From: "Richard Quadling" <[EMAIL PROTECTED]> > Sent: Thursday, July 31, 2008 5:41 PM > To: <[EMAIL PROTECTED]> > Cc: "PHP Documentation ML" <phpdoc@lists.php.net> > Subject: Re: [PHP-DOC] date_diff > >> 2008/7/31 <[EMAIL PROTECTED]> >>> >>> Hi everybody! >>> >>> This might be the right mailing list and it might not be. >>> >>> I'm having a problem getting date_diff to work. >>> I know date_diff accepts 2 DateTime objects and returns a DateInterval >>> which I var_dump but it shows nothing >>> Help is required! >>> >>> Regards >>> Andy >>> >>> Heres my code: >>> >>> <?php >>> >>> $date = new DateTime("28-July-2008"); >>> $other = new DateTime("31-July-2008"); >>> >>> $diff = date_diff($date, $other); >>> >>> echo '<br />date: '; >>> var_dump($date); >>> >>> echo '<br /><br />other: '; >>> var_dump($other); >>> >>> echo '<br /><br />diff: '; >>> var_dump($diff); >>> >>> echo '<br /><br />get_class_methods - DateInterval : '; >>> $class_methods = get_class_methods(new DateInterval('P2Y2M2D')); >>> foreach ($class_methods as $method_name) { >>> echo "$method_name(), "; >>> } >>> >>> echo '<br /><br />get_class_methods - DateTime : '; >>> $class_methods = get_class_methods(new DateTime("31-July-2008")); >>> foreach ($class_methods as $method_name) { >>> echo "$method_name(), "; >>> } >>> >>> ?> >>> >>> Heres my output: >>> >>> >>> date: object(DateTime)#1 (3) { ["date"]=> string(19) "2008-07-28 >>> 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(13) >>> "Europe/London" } >>> >>> other: object(DateTime)#2 (3) { ["date"]=> string(19) "2008-07-31 >>> 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(13) >>> "Europe/London" } >>> >>> diff: object(DateInterval)#3 (0) { } >>> >>> get_class_methods - DateInterval : __construct(), format(), >>> createFromDateString(), >>> >>> get_class_methods - DateTime : __construct(), __wakeup(), __set_state(), >>> createFromFormat(), getLastErrors(), format(), modify(), add(), sub(), >>> getTimezone(), setTimezone(), getOffset(), setTime(), setDate(), >>> setISODate(), setTimestamp(), getTimestamp(), diff(), >>> >>> >> >> <?php >> $date = new DateTime("28-July-2008"); >> $other = new DateTime("31-July-2008"); >> $interval = date_diff($date, $other, True); >> date_add($date, $interval); >> var_dump($date); >> date_add($date, $interval); >> var_dump($date); >> >> >> outputs ... >> >> object(DateTime)#1 (3) { >> ["date"]=> >> string(19) "2008-07-31 00:00:00" >> ["timezone_type"]=> >> int(3) >> ["timezone"]=> >> string(13) "Europe/London" >> } >> object(DateTime)#1 (3) { >> ["date"]=> >> string(19) "2008-08-03 00:00:00" >> ["timezone_type"]=> >> int(3) >> ["timezone"]=> >> string(13) "Europe/London" >> } >> >> So, I can get the difference of 2 dates into an interval. I can then >> add that interval to other dates. >> >> I can't determine the value of the interval though. No interface for that. >> >> -- >> ----- >> Richard Quadling >> Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 >> "Standing on the shoulders of some very clever giants!" >> >
I would have thought that the difference would be returned in the same format as you would supply when you wanted to make a dateinterval (i.e. P3D) maybe. -- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!"