Code Search for Developers
 
 
  

date.php from ECP (EliteCore Project) at Krugle


Show date.php syntax highlighted

<?php


/**
 * Additional Date/Time methods for better support of date/time handling.
 */
class Date {
	const WITHOUT_TIME = 1;
	const DATEFORMAT = 0;
	const UNIXFORMAT = 1;
	const HOUR = 3600;
	const DAY = 86400;
	const WEEK = 604800;
	const MONTH = 2419200;
	const YEAR = 29030400;
	private static $MONTH_JAN = 1;
	private static $MONTH_FEB = 2;
	private static $MONTH_MAR = 3;
	private static $MONTH_APR = 4;
	private static $MONTH_MAY = 5;
	private static $MONTH_JUN = 6;
	private static $MONTH_JUL = 7;
	private static $MONTH_AUG = 8;
	private static $MONTH_SEP = 9;
	private static $MONTH_OCT = 10;
	private static $MONTH_NOV = 11;
	private static $MONTH_DEC = 12;

	/** dateDiff() function
	   * returns Array of Int values for difference between two dates
	   * $date1 > $date2 --> positive integers are returned
	   * $date1 < $date2 --> negative integers are returned
	   *
	   * $split recognizes the following:
	   *  'yw' = splits up years, weeks and days (default)
	   *  'y'  = splits up years and days
	   *  'w'  = splits up weeks and days
	   *  'd'  = total days
	   *
	   * examples:
	   *  $dif1 = dateDiff() or dateDiff('yw')
	   *  $dif2 = dateDiff('y')
	   *  $dif3 = dateDiff('w')
	   *  $dif4 = dateDiff('d')
	   *
	   * assuming dateDiff returned 853 days, the above
	   * examples would have a print_r output of:
	   *  $dif1 == Array( [y] => 2 [w] => 17 [d] => 4 )
	   *  $dif2 == Array( [y] => 2 [d] => 123 )
	   *  $dif3 == Array( [w] => 121 [d] => 6 )
	   *  $dif4 == Array( [d] => 847 )
	   *
	   * note: [h] (hours), [m] (minutes), [s] (seconds) are always returned as elements of the Array
	   */
	public static function dateDiff($dt1, $dt2, $split = 'd') {
		$date1 = (strtotime($dt1) != -1) ? strtotime($dt1) : self :: iso2unix($dt1);
		$date2 = (strtotime($dt2) != -1) ? strtotime($dt2) : self :: iso2unix($dt2);
		$dif = self::unixDiff($date1, $date2, $split);
		return $dif;
	}
	public static function unixDiff($dt1, $dt2, $split = 'd') {
		$dtDiff = $dt1 - $dt2;
		$totalDays = intval($dtDiff / (24 * 60 * 60));
		$totalSecs = $dtDiff - ($totalDays * 24 * 60 * 60);
		$dif['h'] = $h = intval($totalSecs / (60 * 60));
		$dif['m'] = $m = intval(($totalSecs - ($h * 60 * 60)) / 60);
		$dif['s'] = $totalSecs - ($h * 60 * 60) - ($m * 60);
		// set up array as necessary
		switch ($split) {
			case 'yw' : # split years-weeks-days
				$dif['y'] = $y = intval($totalDays / 365);
				$dif['w'] = $w = intval(($totalDays - ($y * 365)) / 7);
				$dif['d'] = $totalDays - ($y * 365) - ($w * 7);
				break;
			case 'y' : # split years-days
				$dif['y'] = $y = intval($totalDays / 365);
				$dif['d'] = $totalDays - ($y * 365);
				break;
			case 'w' : # split weeks-days
				$dif['w'] = $w = intval($totalDays / 7);
				$dif['d'] = $totalDays - ($w * 7);
				break;
			case 'd' : # don't split -- total days
				$dif['d'] = $totalDays;
				break;
			default :
				die("Error in dateDiff(). Unrecognized \$split parameter. Valid values are 'yw', 'y', 'w', 'd'. Default is 'd'.");
		}
		return $dif;
	}
	public static function inPast($date) {
		//DEPRECATED
		return self :: isPast($date);
	}
	public static function isPast($date, $format = self :: DATEFORMAT) {
		if ($format == self :: DATEFORMAT) {
			if (self::iso2unix($date)<=0) {
				return false;
			}
			$diff = self :: dateDiff($date, self :: NOW());
		} else
			if ($format == self :: UNIXFORMAT) {
				if ($date<=0) {
					return false;
				}
				$diff = self :: unixDiff($date, time());
			} else {
				return false;
			}
		foreach ($diff as $time) {
			if ($time < 0)
				return true;
		}
		return false;
	}
	public static function iso2unix($dstr) {
		$i = preg_split("/[^0-9]/", $dstr);
		if (sizeof($i) < 2)
			return $dstr;
		if (!isset ($i[4]))
			$i[4] = 0;
		if (!isset ($i[5]))
			$i[5] = 0;
		if (!isset ($i[6]))
			$i[6] = 0;
		return mktime($i[6], $i[5], $i[4], $i[1], $i[2], $i[0]);
	}
	/**
	* Formats current date/time.
	*
	* This method returns a current timestamp in DATETIME format for MySQL
	* database -> same as NOW() function in MySQL DB.
	*/
	public static function NOW($const = false) {
		if ($const === false)
			return date("Y-m-d H:i:s");
		else
			if ($const == self :: WITHOUT_TIME)
				return date("Y-m-d");
	}
	public static function TIME() {
		return time();
	}
	public static function ADD($timestamp1,$timestamp2) {
		return (int)$timestamp1+(int)$timestamp2;
	}
	public static function format($timestamp) {
		$timestamp = explode(" ", $timestamp);
		$date = $timestamp[0];
		if (isset ($timestamp[1]))
			$time = $timestamp[1];
		else
			$time = "";
		$date = explode("-", $date);
		if (!empty ($date[2]) && !empty ($date[1]))
			return $date[2].".".$date[1].".".$date[0]."&nbsp;&nbsp;".$time;
		else
			return $date[0]."&nbsp;&nbsp;".$time;
	}
	public static function fixDayLength($number) {
		if (strlen((string) $number) == 1)
			$number = "0".$number;
		return $number;
	}
	public static function fixMonthLength($number) {
		return self :: fixDayLength($number);
	}
	public static function Convert($date, $format, $glue = "-") {
		$format = explode("-", $format);
		$date = explode($glue, $date);
		$day_pos = $month_pos = 0;
		foreach ($format as $key => $object) {
			if ($object == "month") {
				$month_pos = $key;
			} else
				if ($object == "day") {
					$day_pos = $key;
				}
		}
		if (strlen($date[$month_pos]) == 2)
			return $date;
		$date[$month_pos] = self :: ${"MONTH_".strtoupper(substr($date[$month_pos], 0, 3))};
		$date[$month_pos] = self :: fixMonthLength($date[$month_pos]);
		$date[$day_pos] = self :: fixDayLength($date[$day_pos]);
		$positions = array ();
		foreach ($date as $key => $object) {
			if ($format[$key] == "year")
				$positions[0] = $object.$glue;
			else
				if ($format[$key] == "month")
					$positions[1] = $object.$glue;
				else
					if ($format[$key] == "day")
						$positions[2] = $object;
		}
		$retval = "";
		for ($i = 0; $i < sizeof($positions); $i ++) {
			$retval .= $positions[$i];
		}
		return $retval;
	}
	public static function Explode($date) {
		$format = explode("-", "year-month-day");
		$date = explode(" ", $date);
		$date = explode("-", $date[0]);

		$positions = array ();
		foreach ($date as $key => $object) {
			if ($format[$key] == "year")
				$positions[$format[$key]] = (int) $object;
			else
				if ($format[$key] == "month")
					$positions[$format[$key]] = (int) $object;
				else
					if ($format[$key] == "day")
						$positions[$format[$key]] = (int) $object;
		}
		return $positions;
	}
	public static function localtime() {
		$localtime = localtime(time(), true);
		$object = new StdClass();
		$object->seconds=$localtime['tm_sec'];
		$object->minutes=$localtime['tm_min'];
		$object->hours=$localtime['tm_hour'];
		$object->month=$localtime['tm_mon']+1;
		$object->year=$localtime['tm_year']+1900;
		$object->day=$localtime['tm_mday'];
		return $object;
	}
	public static function getDay() {
		$days = array ('Neděle', 'Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota');
		return $days[date('w')];
	}
	public static function getNameday() {
		$_svatky = array ('Nový rok', 'Karina', 'Radmila', 'Diana', 'Dalimil', 'Tři králové', 'Vilma', 'Čestmír', 'Vladan', 'Břetislav', 'Bohdana', 'Pravoslav', 'Edita', 'Radovan', 'Alice', 'Ctirad', 'Drahoslav', 'Vladislav', 'Doubravka', 'Ilona', 'Běla', 'Slavomír', 'Zdeněk', 'Milena', 'Miloš', 'Zora', 'Ingrid', 'Otýlie', 'Zdislava', 'Robin', 'Marika', 'Hynek', 'Nela', 'Blažej', 'Jarmila', 'Dobromila', 'Vanda', 'Veronika', 'Milada', 'Apolena', 'Mojmír', 'Božena', 'Slavěna', 'Věnceslav', 'Valentýn', 'Jiřina', 'Ljuba', 'Miloslava', 'Gizela', 'Patrik', 'Oldřich', 'Lenka', 'Petr', 'Svatopluk', 'Matěj', 'Liliana', 'Dorota', 'Alexandr', 'Lumír', 'Horymír', /* 29. 2. !! */
		'Bedřich', 'Anežka', 'Kamil', 'Stela', 'Kazimír', 'Miroslav', 'Tomáš', 'Gabriela', 'Františka', 'Viktorie', 'Anděla', 'Řehoř', 'Růžena', 'Rút / Matylda', 'Ida', 'Elena/Herbert', 'Vlastimil', 'Eduard', 'Josef', 'Světlana', 'Radek', 'Leona', 'Ivona', 'Gabriel', 'Marián', 'Emanuel', 'Dita', 'Soňa', 'Taťána', 'Arnošt', 'Kvido', 'Hugo', 'Erika', 'Richard', 'Ivana', 'Miroslava', 'Vendula', 'Heřman / Hermína', 'Ema', 'Dušan', 'Darja', 'Izabela', 'Julius', 'Aleš', 'Vincenc', 'Anastázie', 'Irena', 'Rudolf', 'Valérie', 'Rostislav', 'Marcela', 'Alexandra', 'Evžénie', 'Vojtěch', 'Jiří', 'Marek', 'Oto', 'Jaroslav', 'Vlastislav', 'Robert', 'Blahoslav', 'Svátek práce', 'Zikmund', 'Alexej', 'Květoslav', 'Klaudie', 'Radoslav', 'Stanislav', 'Statní svátek', 'Ctibor', 'Blažena', 'Svatava', 'Pankrác', 'Servác', 'Bonifác', 'Žofie', 'Přemysl', 'Aneta', 'Nataša', 'Ivo', 'Zbyšek', 'Monika', 'Emil', 'Vladimír', 'Jana', 'Viola', 'Filip', 'Valdemar', 'Vilém', 'Maxim', 'Ferdinand', 'Kamila', 'Laura', 'Jarmil', 'Tamara', 'Dalibor', 'Dobroslav', 'Norbert', 'Iveta', 'Medard', 'Stanislava', 'Gita', 'Bruno', 'Antonie', 'Antonín', 'Roland', 'Vít', 'Zbyněk', 'Adolf', 'Milan', 'Leoš', 'Květa', 'Alois', 'Pavla', 'Zdeňka', 'Jan', 'Ivan', 'Adriana', 'Ladislav', 'Lubomír', 'Petr a Pavel', 'Šárka', 'Jaroslava', 'Patricie', 'Radomír', 'Prokop', 'Státní svátek - Cyril a Metoděj', 'Státní svátek - Mistr Jan Hus', 'Bohuslava', 'Nora', 'Drahoslava', 'Libuše / Amálie', 'Olga', 'Bořek', 'Markéta', 'Karolína', 'Jindřich', 'Luboš', 'Martina', 'Drahomíra', 'Čeněk', 'Ilja', 'Vítězslav', 'Magdaléna', 'Libor', 'Kristýna', 'Jakub', 'Anna', 'Věroslav', 'Viktor', 'Marta', 'Bořivoj', 'Ignác', 'Oskar', 'Gustav', 'Miluše', 'Dominik', 'Kristián', 'Oldřiška', 'Lada', 'Soběslav', 'Roman', 'Vavřinec', 'Zuzana', 'Klára', 'Alena', 'Alan', 'Hana', 'Jáchym', 'Petra', 'Helena', 'Ludvík', 'Bernard', 'Johana', 'Bohuslav', 'Sandra', 'Bartoloměj', 'Radim', 'Luděk', 'Otakar', 'Augustýn', 'Evelína', 'Vladěna', 'Pavlína', 'Linda / Samuel', 'Adéla', 'Bronislav', 'Jindřiška', 'Boris', 'Boleslav', 'Regína', 'Mariana', 'Daniela', 'Irma', 'Denisa', 'Marie', 'Lubor', 'Radka', 'Jolana', 'Ludmila', 'Naděžda', 'Kryštof', 'Zita', 'Oleg', 'Matouš', 'Darina', 'Berta', 'Jaromír', 'Zlata', 'Andrea', 'Jonáš', 'Václav', 'Michal', 'Jeroným', 'Igor', 'Olívie / Oliver', 'Bohumil', 'František', 'Eliška', 'Hanuš', 'Justýna', 'Věra', 'Štefan / Sára', 'Marina', 'Andrej', 'Marcel', 'Renáta', 'Agáta', 'Tereza', 'Havel', 'Hedvika', 'Lukáš', 'Michaela', 'Vendelín', 'Brigita', 'Sabina', 'Teodor', 'Nina', 'Beáta', 'Erik', 'Šarlota / Zoe', 'Státní svátek', 'Silvie', 'Tadeáš', 'Štěpánka', 'Felix', 'Památka zesnulých', 'Hubert', 'Karel', 'Miriam', 'Liběna', 'Saskie', 'Bohumír', 'Bohdan', 'Evžen', 'Martin', 'Benedikt', 'Tibor', 'Sáva', 'Leopold', 'Otmar', 'Mahulena', 'Romana', 'Alžběta', 'Nikola', 'Albert', 'Cecílie', 'Klement', 'Emílie', 'Kateřina', 'Artur', 'Xenie', 'René', 'Zina', 'Ondřej', 'Iva', 'Blanka', 'Svatoslav', 'Barbora', 'Jitka', 'Mikuláš', 'Ambrož', 'Květoslava', 'Vratislav', 'Julie', 'Dana', 'Simona', 'Lucie', 'Lýdie', 'Radana', 'Albína', 'Daniel', 'Miloslav', 'Ester', 'Dagmar', 'Natálie', 'Šimon', 'Vlasta', 'Adam a Eva / Štědrý den', '1.svátek vánoční', 'Štěpán / 2.svátek vánoční', 'Žaneta', 'Bohumila', 'Judita', 'David', 'Silvestr', 'Nový rok');
		$d = getdate();
		$yday = $d["yday"];
		if (($yday > 58) && ((date("Y") % 4) != 0))
			$yday ++; // Detekce prestupneho roku
		$svatek_dnes = $_svatky[$yday];
		return $svatek_dnes;
		/*if (($yday == 58) && ((date("Y") % 4) != 0))
			$yday ++; // Korektni vypis zitrejsiho svatku pri neprestupnem roku
		$svatek_zitra = $svatky[$yday % 366 + 1];*/
	}
	public static function getDaytime() {
		$hour = date('H');
		if ($hour >= 20) return 'night';
		else if ($hour >= 6) return 'day';
		else if ($hour >= 0) return 'night';
	}
}
?>



See more files for this project here

ECP (EliteCore Project)

EliteCore Project is a PHP5.1/Javascript/AJAX/XHTML/CSS framework for creating WEB 2.0 applications and services.The basic open-source instalation can be also used as an interactive personal page or BLOG.This project uses the latest features available.

Project homepage: http://sourceforge.net/projects/elitecore
Programming language(s): JavaScript,PHP,XML
License: cpl

  debug/
    content.php
  exceptions/
    ajaxflush.php
    nomodule.php
    undefineddata.php
  interface/
    encryption.php
    form.php
    module_class.php
    session_interface.php
  renderers/
    default.php
  sql/
    mysql.php
    mysqli.php
  themes/
    ECP/
      accept.png
      add.png
      alt_star.gif
      anchor.png
      arrow_refresh.png
      asterisk_orange.png
      asterisk_yellow.png
      attach.png
      back.png
      cog_error.png
      cog_go.png
      comment.png
      comment_add.png
      comment_delete.png
      comment_edit.png
      comments.png
      comments_add.png
      comments_delete.png
      control_play_blue.png
      drive.png
      gnome-fs-directory.png
      gnome-mime-audio.png
      layers.png
      layout.png
      layout_add.png
      layout_content.png
      layout_delete.png
      layout_edit.png
      layout_error.png
      layout_header.png
      layout_link.png
      layout_sidebar.png
      lightbulb.png
      lightbulb_add.png
      lightbulb_delete.png
      lightbulb_off.png
      lightning.png
      lightning_add.png
      lightning_delete.png
      lightning_go.png
      link.png
      link_add.png
      link_break.png
      link_delete.png
      link_edit.png
      link_error.png
      link_go.png
      lock.png
      lock_add.png
      lock_break.png
      lock_delete.png
      lock_edit.png
      lock_go.png
      lock_open.png
      newspaper.png
      newspaper_add.png
      newspaper_delete.png
      newspaper_go.png
      newspaper_link.png
      note.gif
      note.png
      note_add.png
      note_delete.gif
      note_delete.png
      note_edit.png
      note_error.png
      note_go.png
      note_new.gif
      overlays.png
      package.png
      package_add.png
      package_delete.png
      package_go.png
      package_green.png
      package_link.png
      page.gif
      page.png
      page_add.png
      page_attach.png
      page_code.png
      page_copy.png
      page_delete.png
      page_edit.png
      page_error.png
      page_excel.png
      page_find.png
      page_gear.png
      page_go.png
      page_green.png
      page_key.png
      page_lightning.png
      page_link.png
      page_paintbrush.png
      page_paste.png
      page_red.png
      page_refresh.png
      page_save.png
      page_white.png
      pencil.png
      pencil_add.png
      pencil_delete.png
      pencil_go.png
      photo.png
      photo_add.png
      photo_delete.png
      photo_link.png
      photos.png
      picture.png
      picture_add.png
      picture_delete.png
      picture_edit.png
      picture_empty.png
      picture_error.png
      picture_go.png
      picture_key.png
      picture_link.png
      picture_save.png
      pictures.png
      plugin.png
      plugin_add.png
      plugin_delete.png
      plugin_disabled.png
      plugin_edit.png
      plugin_error.png
      plugin_go.png
      plugin_link.png
      report.png
      report_add.png
      report_delete.png
      report_disk.png
      report_edit.png
      report_go.png
      report_key.png
      report_link.png
      report_magnify.png
      report_picture.png
      report_user.png
      report_word.png
      script.png
      script_add.png
      script_code.png
      script_code_red.png
      script_delete.png
      script_edit.png
      script_error.png
      script_gear.png
      script_go.png
      script_key.png
      script_lightning.png
      script_link.png
      script_palette.png
      script_save.png
      star.png
      star_rating.gif
      stop.png
      style.png
      text_align_center.png
      text_align_justify.png
      text_align_left.png
      text_align_right.png
      text_allcaps.png
      text_bold.png
      text_columns.png
      text_dropcaps.png
      text_heading_1.png
      text_heading_2.png
      text_heading_3.png
      text_heading_4.png
      text_heading_5.png
      text_heading_6.png
      text_horizontalrule.png
      text_indent.png
      text_indent_remove.png
      text_italic.png
      text_kerning.png
      text_letter_omega.png
      text_letterspacing.png
      text_linespacing.png
      text_list_bullets.png
      text_list_numbers.png
      text_lowercase.png
      text_padding_bottom.png
      text_padding_left.png
      text_padding_right.png
      text_padding_top.png
      text_replace.png
      text_signature.png
      text_smallcaps.png
      text_strikethrough.png
      text_subscript.png
      text_superscript.png
      text_underline.png
      text_uppercase.png
      textfield.png
      textfield_add.png
      textfield_delete.png
      textfield_key.png
      textfield_rename.png
      tux.png
      vert_star.gif
    ECP.xml
  Icon.php
  Location.php
  Module.php
  ModulesManager.php
  MusicTags.php
  Page.php
  XHTMLParser.php
  XMLForms.php
  ajax.php
  author.html
  cache.php
  config.php
  date.php
  db.php
  debug.php
  ecp-full.php
  ecp-mini.php
  engine.php
  events.php
  filesystem.php
  footer.html
  i18n.php
  mailer.php
  main.css
  mcrypt.php
  mime.php
  mod_rewrite.php
  perspective.php
  rc4.php
  reflection.php
  session_passport.php
  storage.php
  string.php
  template.php
  texy.php
  user.php
  user_cache.php
  wysiwyg_texy.php
  xhtml_form.php
  xtea.php