mbMachineSummerTime=$asTimeData["tm_isdst"]==1; $this->mlMachineGMTOffset=date("Z"); $this->mlSecondsPerDay=86400; } function REFORMATTIME($sFormat,$sTime) { $asData=explode(":",$sTime); $ts=mktime($asData[0],$asData[1],0,date("m"),date("d"),date("Y")); if($ts>0) return date($sFormat,$ts); else return false; } function REFORMAT($sFormat,$sDatum) { $asData=explode(".",$sDatum); $ts=mktime(12,12,12,$asData[1],$asData[0],$asData[2]); if($ts>0) return date($sFormat,$ts); else return false; } function getFormattedDate($lTag=false,$lMonat=false,$lJahr=false,$distance=0) { if($lTag===false) $lTag=date("d"); if($lMonat===false) $lMonat=date("m"); if($lJahr===false) $lJahr=date("Y"); if($distance==0) return $lTag.".".$this->msGetMonat($lMonat)." ".$lJahr; else { $time=mktime(12,12,12,$lMonat,$lTag,$lJahr)+$distance*3600*24; return date("d.m.y",$time); } } function msGetTagName($sTag) { if(strlen($sTag)==1) $sTag="0".$sTag; $asTag["00"]="Sonntag"; $asTag["01"]="Montag"; $asTag["02"]="Dienstag"; $asTag["03"]="Mittwoch"; $asTag["04"]="Donnerstag"; $asTag["05"]="Freitag"; $asTag["06"]="Samstag"; $x= $asTag[$sTag]; return $x; } function msGetTagNameShort($sTag) { if(strlen($sTag)==1) $sTag="0".$sTag; $asTag["00"]="So"; $asTag["01"]="Mo"; $asTag["02"]="Di"; $asTag["03"]="Mi"; $asTag["04"]="Do"; $asTag["05"]="Fr"; $asTag["06"]="Sa"; $x= $asTag[$sTag]; return $x; } function msGetMonat($sMonat) { if(strlen($sMonat)==1) $sMonat="0".$sMonat; $asMonat["01"]="Januar"; $asMonat["02"]="Februar"; $asMonat["03"]="März"; $asMonat["04"]="April"; $asMonat["05"]="Mai"; $asMonat["06"]="Juni"; $asMonat["07"]="Juli"; $asMonat["08"]="August"; $asMonat["09"]="September"; $asMonat["10"]="Oktober"; $asMonat["11"]="November"; $asMonat["12"]="Dezember"; return $asMonat[$sMonat]; } function isValidTime($sTime) { // is valid wen $asData=explode(":",$sTime); if(sizeof($asData)<2) return false; if(strlen($asData[2])<2) return false; return true; } function isValidDate($sDate) { // is valid wen $asData=explode(".",$sDate); if(sizeof($asData)!=3) return false; if(strlen($asData[2])!=4) return false; return true; } function sqlUTCNow() { return "from_unixtime(unix_timestamp(now())-".$this->mlMachineGMTOffset.")"; } function glGetUTCFromTS($lTime=false) { if($lTime===false) $lTime=time(); return $lTime-date("Z",$lTime); } function glGetUTCFromTSUser($lTime) { return $lTime-date("Z",$lTime); } function glGetCurrentUTC() { return time()-date("Z"); } function gsSQLGetCurrentUTC() { return date("Y-m-d H:i:s",$this->glGetCurrentUTC()); } function glGetTSFromUTC($lStamp) { return $lStamp+date("Z",$lStamp); } function gsGetDateFromUTCStamp($lStamp,$sMaske="d.m.Y H:i") { $lTimeStamp=$lStamp+date("Z",$lStamp); return date($sMaske,$lTimeStamp); } function glGetCurrentUTCUser() { return time()-date("Z"); } function gsGetDateFromUTCStampUser($lStamp,$sMaske="d.m.Y H:i") { $lTimeStamp=$lStamp+date("Z",$lStamp); return date($sMaske,$lTimeStamp); } function gsGetMicroDifference($sa,$sb) { $asA=explode(" ",$sa); $asB=explode(" ",$sb); $dblA=(double)$asA[1]+(double)$asA[0]; $dblB=(double)$asB[1]+(double)$asB[0]; $sText="n/a"; if(is_array($this->oGlobal->oExternalControl->masActionArray)) $sText=join(":",$this->oGlobal->oExternalControl->masActionArray); if($fp=@fopen(PATHQS."logs/avg.durance.".date("dmY").".log","a")) { fwrite($fp,date("d.m.y H:i:s")." ".$this->oGlobal->mlUserID." ".round(abs($dblB-$dblA),4)." ".$sText." "."\r\n"); fclose($fp); } return (double)$dblB-$dblA; } function glSecGetTimeDiff($lFirst,$lSecond=false,$doABS=false) { $lSecond=$lSecond===false?time():$lSecond; $diff=$lSecond-$lFirst; return $doABS===false?$diff:abs($diff); } function glGetTime($lSec) { } function gsZeitraumTo($lTS) { $lGesamtSec=time()-$lTS; // ein tag=86400; $dblGesamtTage=$lGesamtSec/86400; $intGesamtTageInt=(integer)$dblGesamtTage; $difSecDecDay=$dblGesamtTage-($intGesamtTageInt); return array("days"=>$intGesamtTageInt,"hrs"=>$this->gsGetDauerStdMin(86400*$difSecDecDay)); } function gsGetDauerStdMin($lSekunden) { $min=floor($lSekunden/60); $stunden=0; if ($min>59) { $stunden=floor($min/60); $min=$min-$stunden*60; } if($stunden>=24) return "24h"; return str_pad($stunden,2,"0",STR_PAD_LEFT)." h ".str_pad($min,2,"0",STR_PAD_LEFT)." m"; } function gsGetDauerStdMin2($lSekunden) { $min=floor($lSekunden/60); $stunden=0; if ($min>59) { $stunden=floor($min/60); $min=$min-$stunden*60; } return str_pad($stunden,2,"0",STR_PAD_LEFT)." h ".str_pad($min,2,"0",STR_PAD_LEFT)." m"; } function glGetFull($lMinuten,$lTakt=15) { $anteile=60/$lTakt; return floor($lMinuten/$lTakt)*$lTakt+$lTakt; } function gasGetDauerStdMin($lSekunden) { $min=floor($lSekunden/60); $stunden=0; if ($min>59) { $stunden=floor($min/60); $min=$min-$stunden*60; } return array("STUNDEN"=>$stunden,"MINUTEN"=>$min); return str_pad($stunden,2,"0",STR_PAD_LEFT)." h ".str_pad($min,2,"0",STR_PAD_LEFT)." min"; } function glGetTimeStampD($sDatum,$lHour=12,$lMinute=0,$lSecond=0,$lDay=false,$lMonth=false,$lYear=false) { $asD=explode(".",$sDatum); $asD[0]=$lDay===false ? $asD[0] : $lDay; $asD[1]=$lMonth===false ? $asD[1] : $lMonth; $asD[2]=$lYear===false ? $asD[2] : $lYear; return mktime($lHour,$lMinute,$lSecond,$asD[1],$asD[0],$asD[2]); } function glGetTimeStamp($sSQLDate) { $asDateTime=explode(" ",$sSQLDate); $asDate=explode("-",$asDateTime[0]); $asTime=explode(":",$asDateTime[1]); return mktime($asTime[0],$asTime[1],$asTime[2],$asDate[1],$asDate[2],$asDate[0]); } function gsGetSQLDate($sDatum,$sUhrzeit) { $asSet["Datum"]=$sDatum; $asSet["Uhrzeit"]=$sUhrzeit; $asDatum=explode(".",$asSet["Datum"]); if(sizeof($asDatum)<3) $asDatum[2]=date("Y"); if(strlen($asDatum[2])==2) { $asDatum[2]="20".$asDatum[2]; } $asDatum=array_reverse($asDatum); $sTime=$asSet["Uhrzeit"]; $sTime=str_replace(",",":",$sTime); $sTime=str_replace(".",":",$sTime); $sTime=str_replace("-",":",$sTime); $asTime=explode(":",$sTime); if($asTime[0]>23) $asTime[0]=$asTime[0]-24; if(sizeof($asTime)==2) { $asTime[2]="00"; } return (join("-",$asDatum)." ".join(":",$asTime)); } function glGetTimeStampDT($sDate,$sTime) { return CDateTime::glGetTimeStamp(CDateTime::gsDateToSQL($sDate,$sTime)); } function gsGetDateReadable($lTimeStamp,$time=true) { if($time) return date("H:i d.m.Y",$lTimeStamp); else return date("d.m.Y",$lTimeStamp); } function glGetTSFromArray($asData) { $asData["DAY"]=empty($asData["DAY"])?0:$asData["DAY"]; $asData["MONTH"]=empty($asData["MONTH"])?0:$asData["MONTH"]; $asData["YEAR"]=empty($asData["YEAR"])?0:$asData["YEAR"]; $asData["HOUR"]=empty($asData["HOUR"])?0:$asData["HOUR"]; $asData["MINUTE"]=empty($asData["MINUTE"])?0:$asData["MINUTE"]; $asData["SECOND"]=empty($asData["SECOND"])?0:$asData["SECOND"]; return mktime($asData["HOUR"],$asData["MINUTE"],$asData["SECOND"],$asData["MONTH"],$asData["DAY"],$asData["YEAR"]); } function glMonthAdd($lTS,$lMonate=1) { $hour=(integer)date("H",$lTS); $minute=(integer)date("i",$lTS); $sec=(integer)date("s",$lTS); $day=(integer)date("d",$lTS); $month=(integer)date("m",$lTS); $year=(integer)date("Y",$lTS); $month+=$lMonate; if($month>12) { $month-=12; $year++; } return mktime($hour,$minute,$sec,$month,$day,$year); } function gbIsFeiertag($lTag,$lMonat,$lJahr,$bShowSundays=false) { // casten $lTag=(integer)$lTag; $lMonat=(integer)$lMonat; $lJahr=(integer)$lJahr; // wenn sonntag, abbruch $mlDatumTS=mktime(0,0,0,$lMonat,$lTag,$lJahr); $lWochenTag=(integer)date("w",$mlDatumTS); // feste feiertage, die im Jahres Rhythmus takten // Neujahr if($lTag==1 && $lMonat==1) { return "Neujahr"; } // H 3 K if($lTag==6 && $lMonat==1) return "Hl. Drei Könige"; // 1.mai if($lTag==1 && $lMonat==5) return "1. Mai"; // Deutsche einheit if($lTag==3 && $lMonat==10) return "Tag der deutschen Einheit"; // Weihnachtsfeiertag if($lTag==25 && $lMonat==12) return "1. Weihnachtsfeiertag"; if($lTag==26 && $lMonat==12) return "2. Weihnachtsfeiertag"; // Ostern nach Gauss: spasseshalber ~m$ $a=$lJahr % 19; $b=$lJahr/100; $c=(8*$b+13)/25 -2; $d=$b-($lJahr/400) -2; $e=(19*($lJahr % 19)+((15-$c+$d) % 30)) % 30; if($e==28) { if($a>10) { $e=27; } } elseif($e==29) { $e=28; } $f=($d+6*$e+2*($lJahr % 4)+ 4*($lJahr % 7)+6) % 7; $lOsterSonntagTag=$e+$f+22; $lOsterSonntagMonat=3; if($lOsterSonntagTag>31) { $lOsterSonntagTag=$lOsterSonntagTag-31; $lOsterSonntagMonat++; } $lOsterSonntagJahr=$lJahr; if($lTag==$lOsterSonntagTag && $lMonat==$lOsterSonntagMonat && $lJahr==$lOsterSonntagJahr) { return "Ostersonntag"; } $lOsterMontagTag=$lOsterSonntagTag+1; $lOsterMontagMonat=$lOsterSonntagMonat; $lOsterMontagJahr=$lOsterSonntagJahr; if($lOsterMontagTag>31) { $lOsterMontagTag=1; $lOsterMontagMonat++; } // ostermontag if($lTag==$lOsterMontagTag && $lMonat==$lOsterMontagMonat && $lJahr==$lOsterMontagJahr) return "Ostermontag"; // karfreitag $lKarFreitagMonat=$lOsterSonntagMonat; $lKarFreitagJahr=$lOsterSonntagJahr; $lKarFreitagTag=$lOsterSonntagTag-2; if($lKarFreitagTag<=0) { $lKarFreitagTag=31-$lKarFreitagTag; $lKarFreitagMonat=$lKarFreitagMonat--; } // karfreitag if($lTag==$lKarFreitagTag && $lMonat==$lKarFreitagMonat && $lJahr==$lKarFreitagJahr) return "Karfreitag"; $lOSTS=mktime(12,12,12,$lOsterSonntagMonat,$lOsterSonntagTag,$lOsterSonntagJahr); // Christi himmelfahrt $lCHTag=(integer)date("d",$lOSTS+(24*3600*39)); $lCHMonat=(integer)date("m",$lOSTS+(24*3600*39)); $lCHJahr=(integer)date("Y",$lOSTS+(24*3600*39)); if($lTag==$lCHTag && $lMonat==$lCHMonat && $lJahr==$lCHJahr) return "Christi Himmelfahrt"; // Pfingstmontag $lCHTag=(integer)date("d",$lOSTS+(24*3600*50)); $lCHMonat=(integer)date("m",$lOSTS+(24*3600*50)); $lCHJahr=(integer)date("Y",$lOSTS+(24*3600*50)); if($lTag==$lCHTag && $lMonat==$lCHMonat && $lJahr==$lCHJahr) return "Pfingstmontag"; $this->mbSunday=false; if($lWochenTag==0&&$bShowSundays===false) { echo "OK"; return true; } elseif($lWochenTag==0) { $this->mbSunday=true; return "Sonntag"; } return false; } function gasGetNextMonth($lM,$lY) { $lM++; if($lM>12) { $lM=1; $lY++; } return array("MONTH"=>$lM,"YEAR"=>$lY); } function gasGetPrevMonth($lM,$lY) { $lM--; if($lM<1) { $lM=12; $lY--; } return array("MONTH"=>$lM,"YEAR"=>$lY); } function gsSqlToDate($sSqlDate) { $asData=explode("-",$sSqlDate); $asData=array_reverse($asData); return join(".",$asData); } function gsDateToSQL($sDate=false,$sTime=false) { $sSQLDate=""; if($sDate!==false) { $as=explode(".",$sDate); if(strlen($as[2])!=4) { // wenn 04 dann 2004; $as[2]="2".str_pad($as[2],5-strlen($as[2]),"0",STR_PAD_LEFT); } $sSQLDate=$as[2]."-".str_pad($as[1],2,"0",STR_PAD_LEFT)."-".str_pad($as[0],2,"0",STR_PAD_LEFT); } if($sTime!==false) { $as=explode(":",$sTime); $sSQLDate.=($sSQLDate!==""?" ":"").$as[0].":".$as[1].":".(empty($as[2])?"00":$as[2]); } return $sSQLDate; } }