note 129684 added to class.dateinterval

From: Date: Thu, 01 Aug 2024 14:58:35 +0000
Subject: note 129684 added to class.dateinterval
Groups: php.notes 
Request: Send a blank email to php-notes+get-221456@lists.php.net to get a copy of this message
There is a handy way to compare intervals by adding them to 0 dates and comparing dates instead <?php function compare(DateInterval $first, DateInterval $second): int { $firstDate = (new DateTime())->setTimestamp(0)->add($first); $secondDate = (new DateTime())->setTimestamp(0)->add($second); return $firstDate <=> $secondDate; } echo compare(new DateInterval('P2D'), new DateInterval('PT48H')) . PHP_EOL; echo compare(DateInterval::createFromDateString('2 days'), DateInterval::createFromDateString('48 hours')) . PHP_EOL; echo compare(DateInterval::createFromDateString('2 days'), DateInterval::createFromDateString('49 hours')) . PHP_EOL; echo compare(DateInterval::createFromDateString('2 days'), DateInterval::createFromDateString('47 hours')) . PHP_EOL; ?> Outputs: 0 0 -1 1 ---- Server IP: 45.112.84.4 Probable Submitter: 80.90.5.137 (proxied: 63.35.78.15) ---- Manual Page -- https://php.net/manual/en/class.dateinterval.php Edit -- https://main.php.net/note/edit/129684 Del: integrated -- https://main.php.net/note/delete/129684/integrated Del: useless -- https://main.php.net/note/delete/129684/useless Del: bad code -- https://main.php.net/note/delete/129684/bad+code Del: spam -- https://main.php.net/note/delete/129684/spam Del: non-english -- https://main.php.net/note/delete/129684/non-english Del: in docs -- https://main.php.net/note/delete/129684/in+docs Del: other reasons-- https://main.php.net/note/delete/129684 Reject -- https://main.php.net/note/reject/129684 Search -- https://main.php.net/manage/user-notes.php

« previous php.notes (#221456) next »