コード例 #1
0
 public function testAddingOneDayDateInterval()
 {
     $expected = new TimePoint(1963, 11, 22, 11, 30, 0, 'America/Detroit');
     $start = new TimePoint(1963, 11, 22, 12, 30, 0, 'America/Detroit');
     $int = new TimeInterval('PT1H');
     $actual = $start->sub($int);
     $this->assertSame($expected->format('Y-m-d H:i:s', 'America/Detroit'), $actual->format('Y-m-d H:i:s', 'America/Detroit'));
 }
コード例 #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 '';
 }