Пример #1
0
 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);
 }
Пример #2
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);
 }
Пример #3
0
 /**
  * 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 '';
 }
Пример #4
0
 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);
 }