Example #1
0
 public function testTimeSince()
 {
     $datetime2 = date('Y-m-d H:i:s', strtotime('-1day'));
     $datetime3 = date('Y-m-d H:i:s', strtotime('-2 month 2 days'));
     $datetimes = array($this->datetime => $this->o, $datetime2 => new DateTime($datetime2), $datetime3 => new DateTime($datetime3));
     foreach ($datetimes as $datetime => $datetimeObj) {
         $now = new \DateTime($datetime);
         $int = $now->diff(new \DateTime());
         $map = array('y' => 'year', 'm' => 'month', 'd' => 'day', 'h' => 'hour', 'i' => 'minute', 's' => 'second');
         $timeSince = array();
         foreach ($map as $k => $v) {
             if ($int->{$k}) {
                 $timeSince[$k] = $int->{$k} . ' ' . $v . ($int->{$k} == 1 ? '' : 's');
             }
         }
         $this->assertEquals(implode(', ', $timeSince), $datetimeObj->timeSince('now', true));
         unset($timeSince['s']);
         $this->assertEquals(implode(', ', $timeSince), $datetimeObj->timeSince());
     }
 }