/** * TimeTest::testBuildTime() * * @return void */ public function testBuildTime() { //echo $this->_header(__FUNCTION__); $tests = [7440 => '2:04:00', 7220 => '2:00:20', 5400 => '1:30:00', 3660 => '1:01:00', 43202 => '12:00:02']; // positive foreach ($tests as $was => $expected) { $is = $this->Time->buildTime($was); //pr($is); $this->assertEquals($expected, $is); } // negative foreach ($tests as $was => $expected) { $is = $this->Time->buildTime(-$was); //pr($is); $this->assertEquals('-' . $expected, $is); } $tests = [7220 => '2:00', 7441 => '2:04', 43202 => '12:00']; // positive foreach ($tests as $was => $expected) { $is = $this->Time->buildTime($was, 'H:MM'); //pr($is); $this->assertEquals($expected, $is); } // using DateTime interval $datetime1 = new DateTime('2009-10-11 13:13:13'); $datetime2 = new DateTime('2009-10-12 13:13:15'); $interval = $datetime1->diff($datetime2); $result = $this->Time->buildTime($interval, 'H:MM:SS'); $this->assertEquals('24:00:02', $result); // using Time/Carbon $start = new Time(); $end = (new Time())->addMinutes(3); $diff = $end->diffInSeconds($start); $result = $this->Time->buildTime($diff, 'H:MM:SS'); $this->assertEquals('0:03:00', $result); $result = $this->Time->buildTime($diff, 'M:SS'); $this->assertEquals('3:00', $result); }