| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- <?php
 
- namespace fphammerle\helpers;
 
- class DateTimeHelper
 
- {
 
-     /**
 
-      * @param integer|null $timestamp unix timestamp
 
-      * @return DateTime|null
 
-      */
 
-     public static function timestampToDateTime($timestamp)
 
-     {
 
-         if($timestamp === null) {
 
-             return null;
 
-         } elseif(is_int($timestamp)) {
 
-             $dt = new \DateTime();
 
-             $dt->setTimestamp($timestamp);
 
-             return $dt;
 
-         } else {
 
-             throw new \InvalidArgumentException('expected integer or null');
 
-         }
 
-     }
 
-     /**
 
-      * @param string|null $text
 
-      * @return DatePeriod|null
 
-      */
 
-     public static function parse($text)
 
-     {
 
-         if($text === null) {
 
-             return null;
 
-         } else {
 
-             if(preg_match(
 
-                     '/^(?P<y>\d{4})-(?P<m>\d{2})-(?P<d>\d{2})'
 
-                         .'([ T](?P<h>\d{2}):(?P<i>\d{2}):(?P<s>\d{2}))?$/',
 
-                     $text,
 
-                     $attr
 
-                     )) {
 
-                 $start = new \DateTime();
 
-                 $start->setDate($attr['y'], $attr['m'], $attr['d']);
 
-                 $start->setTime(
 
-                     isset($attr['h']) ? $attr['h'] : 0,
 
-                     isset($attr['i']) ? $attr['i'] : 0,
 
-                     isset($attr['s']) ? $attr['s'] : 0
 
-                     );
 
-                 if(isset($attr['h'])) {
 
-                     $interval = new \DateInterval('PT1S');
 
-                 } else {
 
-                     $interval = new \DateInterval('P1D');
 
-                 }
 
-                 $end = clone $start;
 
-                 $end->add($interval);
 
-                 return new \DatePeriod($start, $interval, $end);
 
-             } else {
 
-                 throw new \InvalidArgumentException(
 
-                     sprintf("could not parse string '%s'", $text)
 
-                     );
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |