• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

classes/class.ilFormat.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2001 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
00021         +-----------------------------------------------------------------------------+
00022 */
00023 
00024 
00040 class ilFormat
00041 {
00042         function ilFormat ()
00043         {
00044                 return;
00045         }
00046 
00047         // Holt das aktuelle Datum und gibt es im Format TT.MM.JJJJ zurck
00048         function getDateDE ()
00049         {
00050                 $date = getdate();
00051                 $datum = sprintf("%02d.%02d.%04d", $date["mday"],$date["mon"],$date["year"]);
00052                 return $datum;
00053         }
00054 
00063         function input2date ($AInputDate)
00064         {
00065 
00066                 $date=""; $y=""; $m=""; $d="";
00067 //              if (ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{2,4})",$idate,$p))
00068                 if (ereg("([0-9]{1,2}).([0-9]{1,2}).([0-9]{2,4})",$AInputDate,$p))
00069                 {
00070                 
00071                         $d = $p[1];
00072                         $m = $p[2];
00073                         $y = $p[3];
00074                         
00075                         if (($d>0 && $d<32) && ($m>0 && $m<13) && (strlen($y)!=3))
00076                         {
00077                                 if (strlen($d) == 1) $d = "0".$d;
00078                                 if (strlen($m) == 1) $m = "0".$m;
00079 
00080                                 if (strlen($y) == 2)
00081                                 {
00082                                         if ($y>=70) $y = $y + 1900;
00083                                         if ($y<70) $y = $y + 2000;
00084                                 }
00085                                 
00086                                 // is valid?
00087                                 checkdate($m, $d, $y);
00088 
00089                                 // Ausgabe mit Uhrzeit
00090 
00091                 // Uhrzeit holen
00092                 $uhrzeit = substr($AInputDate, -8);
00093 
00094                 // Uhrzeit auf Gltigkeit prfen
00095                 if (ereg("([0-9]{2}):([0-9]{2}):([0-9]{2})",$AInputDate,$p))
00096                 {
00097                                         $h   = $p[1];
00098                                         $min = $p[2];
00099                                         $s   = $p[3];
00100                                         
00101                                         if (($h>-1 && $h<24) && ($min>-1 && $min<60) && ($s>-1 && $s<60))
00102                                         {
00103                                                 // Uhrzeit stimmt/ist vorhanden
00104                                                 $date = sprintf("%04d-%02d-%02d %02d:%02d:%02d",$y,$m,$d,$h,$min,$s);
00105                                         }
00106                                 }
00107                                 else
00108                                 {
00109                                         // Uhrzeit ist falsch/fehlt; hnge aktuelle Zeit an
00110                                         $zeit = getdate();
00111                                         $date = sprintf("%04d-%02d-%02d %02d:%02d:%02d",$y,$m,$d,$zeit["hours"],$zeit["minutes"],$zeit["seconds"]);
00112                                 }
00113                                 // Ausgabe ohne Uhrzeit
00114                                 //$date = sprintf("%04d-%02d-%02d",$y,$m,$d);
00115                                 return $date;
00116                         }
00117                 }
00118         }
00119         
00120 
00125         function dateDB2timestamp ($ADatumSQL)
00126         {
00127                 $timestamp = substr($ADatumSQL, 0, 4).
00128                                          substr($ADatumSQL, 5, 2).
00129                                          substr($ADatumSQL, 8, 2).
00130                                          substr($ADatumSQL, 11, 2).
00131                                          substr($ADatumSQL, 14, 2).
00132                                          substr($ADatumSQL, 17, 2);
00133 
00134                 return $timestamp;
00135         }
00136 
00141         function dateDE2timestamp ($ADatum)
00142         {
00143                 $timestamp = substr($ADatum, 6, 4).
00144                                          substr($ADatum, 3, 2).
00145                                          substr($ADatum, 0, 2).
00146                                          substr($ADatum, 11, 2).
00147                                          substr($ADatum, 14, 2).
00148                                          substr($ADatum, 17, 2);
00149                                          
00150                 return $timestamp;
00151         }
00152 
00153 
00158         function fdateDB2dateDE ($t)
00159         {
00160                 return sprintf("%02d.%02d.%04d",substr($t, 8, 2),substr($t, 5, 2),substr($t, 0, 4));
00161         }
00162 
00163 
00168         function ftimestamp2dateDE ($t)
00169         {
00170                 return sprintf("%02d.%02d.%04d",substr($t, 6, 2),substr($t, 4, 2),substr($t, 0, 4));
00171         }
00172 
00173 
00178         function ftimestamp2datetimeDE ($t)
00179         {
00180                 return sprintf("%02d.%02d.%04d %02d:%02d:%02d",substr($t, 6, 2),substr($t, 4, 2),substr($t, 0, 4),substr($t, 8, 2),substr($t, 10, 2),substr($t, 12, 2));
00181         }
00182 
00183 
00188         function ftimestamp2dateDB ($t)
00189         {
00190                 return sprintf("%04d-%02d-%02d",substr($t, 0, 4),substr($t, 4, 2),substr($t, 6, 2));
00191         }
00192 
00199         function ftimestamp2datetimeDB($aTimestamp)
00200         {
00201                 $date = "";
00202                 if (preg_match("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/", $aTimestamp, $matches))
00203                 {
00204                         $date = "$matches[1]-$matches[2]-$matches[3] $matches[4]:$matches[5]:$matches[6]";
00205                 }
00206                 return $date;
00207         }
00208 
00209 
00217         function compareDates ($ADate1,$ADate2)
00218         {
00219                 if ($ADate1 > $ADate2)
00220                 {
00221                         return $ADate1;
00222                 }
00223                 
00224                 return $ADate2;
00225         }
00226         
00227 
00232         function checkDecimal ($var)
00233         {
00234                 return doubleval(ereg_replace (",",".",$var));
00235         }
00236 
00237 
00241         function fGeld ()
00242         {
00243                 $num_args = func_num_args();
00244                 
00245                 $geld = func_get_arg(0);
00246                 
00247                 if ($num_args == 1)
00248                 {
00249                         $test = intval($geld);
00250                         
00251                         if (!$test)
00252                                 return "&nbsp;";
00253                 }
00254                 
00255                 return number_format($geld,2,",",".")." &euro;";
00256         }
00257 
00258 
00263         function fProzent ()
00264         {
00265                 $num_args = func_num_args();
00266                 
00267                 $prozent = func_get_arg(0);
00268 
00269                 if ($num_args == 1)
00270                 {
00271                         $test = intval($prozent);
00272                         
00273                         if (!$test)
00274                                 return "&nbsp;";
00275                 }
00276                 
00277                 return number_format($prozent,2,",",".")."%";
00278         }
00279         
00284         function runden ($value)
00285         {
00286                 return round($value * 100) / 100;
00287         }
00288 
00304         function fmtDateTime($a_str,$a_dateformat,$a_timeformat,$a_mode = "datetime")
00305         {
00306                 //no format defined. set to default format
00307                 if ($a_dateformat == "")
00308                 {
00309                         $a_dateformat = "Y-m-d";
00310                 }
00311                 
00312                 // same for time format
00313                 if ($a_timeformat == "")
00314                 {
00315                         $a_timeformat = "H:i:s";
00316                 }
00317 
00318                 //get values from given sql-date
00319                 $d = substr($a_str,8,2);
00320                 $m = substr($a_str,5,2);
00321                 $y = substr($a_str,0,4);
00322                 $h = substr($a_str,11,2);
00323                 $i = substr($a_str,14,2);
00324                 $s = substr($a_str,17,4);
00325 
00326                 // Minimum date is 1.1.1970
00327                 if(($y < 1970) or
00328                    ($y == 1970 and ($m < 1 or $d < 1)))
00329                 {
00330                         $y = 1970;
00331                         $m = 1;
00332                         $d = 2;
00333                         $h = $i = $s = 0;
00334                 }
00335 
00336                 if ($a_mode == "time")
00337                 {
00338                         return date($a_timeformat,mktime($h,$i,$s,1,1,1999));           
00339                 }
00340                 
00341                 if ($a_mode == "date")
00342                 {
00343                         return date($a_dateformat,mktime($h,$i,$s,$m,$d,$y));           
00344                 }
00345 
00346                 return date($a_dateformat." ".$a_timeformat,mktime($h,$i,$s,$m,$d,$y));         
00347         }
00348         
00361         function fmtFloat($a_float, $a_decimals = "", $a_th = "")
00362         {
00363                 //thousandskomma?
00364                 if (!empty($a_th))
00365                 {
00366                         if ($a_th == "-lang_sep_thousand-")
00367                         {
00368                                 $a_th = ",";
00369                         }
00370                 }
00371                 
00372                 //decimalpoint?
00373                 $dec = $a_decimals;
00374                 
00375                 if ($dec == "-lang_sep_decimal-")
00376                 {
00377                         $dec = ".";
00378                 }
00379 
00380                 return number_format($a_float, $a_decimals, $dec, $a_th);
00381         }
00382 
00383         function unixtimestamp2datetime($a_unix_timestamp = "")
00384         {
00385                 if (strlen($a_unix_timestamp) == 0)
00386                 {
00387                         return strftime("%Y-%m-%d %H:%M:%S");
00388                 }
00389                 else
00390                 {
00391                         return strftime("%Y-%m-%d %H:%M:%S", $a_unix_timestamp);
00392                 }
00393         }
00394         
00395         /*
00396         * format a date according to the user language 
00397         * shortcut for Format::fmtDateTime
00398         * @access       public
00399         * @param        string  sql date
00400         * @param        string  format mode
00401         * @return       string  formatted date
00402         * @see          Format::fmtDateTime
00403         */
00404         function formatDate($a_date,$a_mode = "datetime", $a_omit_seconds = false)
00405         {
00406                 global $lng;
00407                 
00408                 // return when no datetime is given
00409                 if ($a_date == "0000-00-00 00:00:00")
00410                 {
00411                         return $lng->txt("no_date");
00412                 }
00413 
00414                 $dateformat = $lng->txt("lang_dateformat");
00415                 if ($a_omit_seconds && ($lng->txt("lang_timeformat_no_sec") != "-lang_timeformat_no_sec-"))
00416                 {
00417                         $timeformat = $lng->txt("lang_timeformat_no_sec");
00418                 }
00419                 else
00420                 {
00421                         $timeformat = $lng->txt("lang_timeformat");
00422                 }
00423                 
00424                 if ($dateformat == "-lang_dateformat-")
00425                 {
00426                         $dateformat = "";
00427                 }
00428                 
00429                 if ($timeformat == "-lang_timeformat-")
00430                 {
00431                         $timeformat = "";
00432                 }
00433 
00434                 return ilFormat::fmtDateTime($a_date,$dateformat,$timeformat,$a_mode);
00435         }
00436 
00437         function formatUnixTime($ut,$with_time = false)
00438         {
00439                 global $lng;
00440 
00441                 $format = $lng->txt('lang_dateformat');
00442 
00443                 if($with_time)
00444                 {
00445                         $format .= (' '.$lng->txt('lang_timeformat_no_sec'));
00446                 }
00447                 return date($format,$ut);
00448         }
00449         /*
00450         * calculates the difference between 2 unix timestamps and
00451         * returns a proper formatted output
00452         * 
00453         * @param        integer unix timestamp1
00454         * @param        integer unix timestamp2
00455         * @return       string  time difference in hh:mm:ss
00456         */
00457         function dateDiff($a_ts1,$a_ts2)
00458         {
00459                 $r = $a_ts2 - $a_ts1;
00460                 
00461                 $dd = floor($r/86400);
00462 
00463                 if ($dd <= 9)
00464                         $dd = "0".$dd;
00465 
00466                 $r = $r % 86400;
00467                 
00468                 $hh = floor($r/3600);
00469                 
00470                 if ($hh <= 9)
00471                         $hh = "0".$hh;
00472                 
00473                 $r = $r % 3600;
00474                 
00475                 $mm = floor($r/60) ;
00476                 
00477                 if ($mm <= 9)
00478                         $mm = "0".$mm;
00479                 
00480                 $r = $r % 60;
00481                 $ss = $r;
00482 
00483                 if ($ss <= 9)
00484                         $ss = "0".$ss;
00485 
00486                 return $hh.":".$mm.":".$ss;
00487         }
00488 
00495         function datetime2unixTS($a_datetime)
00496         {
00497                 $arrDT = explode(" ", $a_datetime);
00498                 $arrD = explode("-", $arrDT[0]);
00499                 $arrT = explode(":", $arrDT[1]);
00500 
00501                 return mktime($arrT[0], $arrT[1], $arrT[2], $arrD[1], $arrD[2], $arrD[0]);
00502         }
00503 
00511         function _secondsToString($seconds)
00512         {
00513                 global $lng;
00514 
00515                 $seconds = $seconds ? $seconds : 0;
00516 
00517                 global $lng;
00518 
00519                 $days = floor($seconds / 86400);
00520                 $rest = $seconds % 86400;
00521 
00522                 $hours = floor($rest / 3600);
00523                 $rest = $rest % 3600;
00524 
00525                 $minutes = floor($rest / 60);
00526 
00527                 if($days)
00528                 {
00529                         $message = $days . ' '. $lng->txt('days');
00530                 }
00531                 if($hours)
00532                 {
00533                         if($message)
00534                         {
00535                                 $message .= ' ';
00536                         }
00537                         $message .= ($hours . ' '. $lng->txt('hours'));
00538                 }
00539                 if($minutes)
00540                 {
00541                         if($message)
00542                         {
00543                                 $message .= ' ';
00544                         }
00545                         $message .= ($minutes . ' '. $lng->txt('minutes'));
00546                 }
00547                 if(!$days and !$hours and !$minutes)
00548                 {
00549                         return $seconds .' '. $lng->txt('seconds');
00550                 }
00551                 else
00552                 {
00553                         return $message;
00554                 }
00555         }
00563         function _secondsToShortString($seconds)
00564         {
00565                 global $lng;
00566 
00567                 $seconds = $seconds ? $seconds : 0;
00568 
00569                 global $lng;
00570 
00571                 $days = floor($seconds / 86400);
00572                 $rest = $seconds % 86400;
00573 
00574                 $hours = floor($rest / 3600);
00575                 $rest = $rest % 3600;
00576 
00577                 $minutes = floor($rest / 60);
00578                 $rest = $rest % 60;
00579 
00580                 return sprintf("%02d:%02d:%02d:%02d",$days,$hours,$minutes,$rest);
00581 
00582         }
00583 }
00584 ?>

Generated on Fri Dec 13 2013 13:52:07 for ILIAS Release_3_7_x_branch .rev 46817 by  doxygen 1.7.1