Beispiel #1
0
 /**
  * creates formatted output for calendar component property data value type date/date-time
  *
  * @author Kjell-Inge Gustafsson, kigkonsult <*****@*****.**>
  * @since 2.4.8 - 2008-10-30
  * @param array   $datetime
  * @param int     $parno, optional, default 6
  * @return string
  */
 public static function _format_date_time($datetime, $parno = 6)
 {
     if (!isset($datetime['year']) && !isset($datetime['month']) && !isset($datetime['day']) && !isset($datetime['hour']) && !isset($datetime['min']) && !isset($datetime['sec'])) {
         return;
     }
     $output = null;
     // if( !isset( $datetime['day'] )) { $o=''; foreach($datetime as $k=>$v) {if(is_array($v)) $v=implode('-',$v);$o.=" $k=>$v";} echo " day SAKNAS : $o <br />\n"; }
     foreach ($datetime as $dkey => &$dvalue) {
         if ('tz' != $dkey) {
             $dvalue = (int) $dvalue;
         }
     }
     $output = date('Ymd', mktime(0, 0, 0, $datetime['month'], $datetime['day'], $datetime['year']));
     if (isset($datetime['hour']) || isset($datetime['min']) || isset($datetime['sec']) || isset($datetime['tz'])) {
         if (isset($datetime['tz']) && !isset($datetime['hour'])) {
             $datetime['hour'] = 0;
         }
         if (isset($datetime['hour']) && !isset($datetime['min'])) {
             $datetime['min'] = 0;
         }
         if (isset($datetime['hour']) && isset($datetime['min']) && !isset($datetime['sec'])) {
             $datetime['sec'] = 0;
         }
         $date = mktime($datetime['hour'], $datetime['min'], $datetime['sec'], $datetime['month'], $datetime['day'], $datetime['year']);
         $output .= date('\\THis', $date);
         if (isset($datetime['tz']) && '' < trim($datetime['tz'])) {
             $datetime['tz'] = trim($datetime['tz']);
             if ('Z' == $datetime['tz']) {
                 $output .= 'Z';
             }
             $offset = iCal_UtilityFunctions::_tz2offset($datetime['tz']);
             if (0 != $offset) {
                 $date = mktime($datetime['hour'], $datetime['min'], $datetime['sec'] + $offset, $datetime['month'], $datetime['day'], $datetime['year']);
                 $output = date('Ymd\\THis\\Z', $date);
             }
         } elseif (7 == $parno) {
             $output .= 'Z';
         }
     }
     return $output;
 }