public function testNoTimeZoneGivenPullsFromPHPConfig() { ini_set('date.timezone', 'America/Detroit'); $expected = new TimePoint(2001, 3, 30, 0, 0, 0, 'America/Detroit'); $clock = new Clock('2001-03-30 00:00:00'); $actual = $clock->read(); $this->assertSame($expected->compare($actual), 0); }
/** * @param TimePoint $date * * @return DateTime */ private function timePointToDateTime(TimePoint $date) { $parserFormat = '@^(\\d+)-(\\d+)-(\\d+)-(\\d+)-(\\d+)-(\\d+)$@'; $parsableFormat = 'Y-n-j-G-i-s'; $inputFormat = '%04d-%02d-%02d %02d:%02d:%02d'; $tz = new DateTimeZone('UTC'); preg_match($parserFormat, $date->format($parsableFormat, 'UTC'), $t); return new DateTime(sprintf($inputFormat, $t[1], $t[2], $t[3], $t[4], $t[5], $t[6]), $tz); }
/** * Format a DateTime or TimePoint. Invalid values will output an empty string. * * @param TimePoint|DateTime|null $time * @param string $format * * @return string */ public function formatTimepoint($time, $format) { if ($time instanceof TimePoint) { return $time->format($format, $this->displayTimezone); } if ($time instanceof DateTime) { $formatted = clone $time; $formatted->setTimezone(new DateTimeZone($this->displayTimezone)); return $formatted->format($format); } return ''; }
public function testDiffingTimePointsWithSameTimestamp() { $expected = new TimeInterval('P0Y0M0DT0H0M0S'); $start = new TimePoint(1999, 9, 9, 3, 0, 0, 'America/Detroit'); $diff = new TimePoint(1999, 9, 9, 3, 0, 0, 'America/Detroit'); $actual = $start->diff($diff); $this->assertEquals($expected, $actual); }