Joomla! Programmierung/Framework/JFactory/getDate
JFactory/getDate Liefert eine Referenz zu dem globalen JDate Objekt. Wird nur neu erstellt, wenn es noch nicht existiert.
Inhaltsverzeichnis |
[Bearbeiten] Syntax
- @return object JDate
- @since
| Parameter | Datentyp | Beschreibung | Standardwert |
|---|---|---|---|
| $time | string oder unsigned integer | Datum und Uhrzeit die genutzt werden soll. Um die aktuelle Zeit (UT) zu erhalten, können Sie den Parameter 'now' übergeben. Das Format, dass genutzt wird hängt von der gewählten Sprache bzw. vom "Override"ToDo Verlinken des Gregorianischen Kalenders im Sprachpaket ab. Wenn ein Integer übergeben wird, dann wird das Datum als Unix Timestamp interpretiert. | 'now' |
| $tzOffset | signed integer | Der Zeitzonen Offset, welcher dem Datum und der Zeit $time hinzugerechnet werden soll. Dieser Wert wird von $time subtrahiert wenn die Zeit berechnet wird. Somit wird die Zeit intern immer als UT gehandelt. $tzOffset hat keinerlei Auswirkungen wenn mittels now die aktuelle Zeit abgefragt wird, da diese immer in der UT vorliegt.
|
0 |
[Bearbeiten] Beispiele
[Bearbeiten] Aktuelle Zeit ausgeben
In diesem Beispiel wird die aktuelle Zeit (mit Offset) im aktuellen Sprachpaketformat ausgegeben. Siehe dazu auch getApplication, JApplication und JDate.
/** PHP 4 */ $app = JFactory::getApplication(); $offset = $app->getCfg('offset'); $date = JFactory::getDate(); $date->setOffset($offset); echo 'Das aktuelle Datum und die aktuelle Zeit ist: ' . $date->toFormat() . "\n"; /** PHP 5 */ $date = JFactory::getDate(); $date->setOffset(JFactory::getApplication()->getCfg('offset')); echo 'Das aktuelle Datum und die aktuelle Zeit ist: ' . $date->toFormat() . "\n"; /** PHP 5 Version 2*/ echo 'Das aktuelle Datum und die aktuelle Zeit ist: '; echo JFactory::getDate('now', JFactory::getApplication()->getCfg('offset'))->toFormat() . "\n";
Es wird in etwa folgendes ausgegeben:
Das aktuelle Datum und die aktuelle Zeit ist: 2009-06-19 01:56:08
[Bearbeiten] JDate vordefinierte Formate
JDate hat mehrere vorformatierte Formate, die Sie einfach abrufen können. In diesem Beispiel wird eine Zeit übergeben und gleichzeitig der Offset herausgerechnet. Das heißt die Zeit wird auf die UT zurück gesetzt. Bei der Ausgabe wird dieses mal kein Offset hinzugefügt und einfach die UT Zeit in den verschiedenen Formaten ausgeben.
$date =& JFactory::getDate( '16 June 2008 14:30:00', 1 ); echo 'Das Datum und die Zeit lauten: ' . $date->toRFC822() . "\n"; echo 'Das Datum und die Zeit lauten: ' . $date->toRFC822() . "\n";
Es wird folgendes ausgegeben:
Das Datum und die Zeit lauten: Wed, 16 Jun 2008 13:30:00 +0000 Das Datum und die Zeit lauten: 2008-06-16T13:30:00Z
[Bearbeiten] Benutzerdefinierte Formate
Über die Funktion toFormat() der Klasse JDate können Sie ein benutzerdefiniertes Format in der Syntax der PHP Funktion strftime() angeben. Die Ausgabe erfolgt hierbei lokalisiert.
echo JFactory::getDate()->toFormat('%A %d. %B %G %H:%M:%S');
Es wird folgendes für die deutsche Sprache ausgegeben:
Dienstag 27. Oktober 2009 00:54:45
[Bearbeiten] UNIX Timestamp ausgeben
In diesem Beispiel wird ein UNIX Timestamp übergeben und im MySQL Format ausgegeben.
$date = JFactory::getDate( 1332362632 ); echo 'Das Datum und die Zeit lauten: ' . $date->toMySQL() . "\n";
Es wird folgendes ausgegeben:
Das Datum und die Zeit lauten: 2012-03-21 20:43:52
[Bearbeiten] Siehe auch
- JFactory->getDate() auf api.joomla.org
- JDate
- JLanguage
[Bearbeiten] Quellcode
{ jimport('joomla.utilities.date'); } $language = self::getLanguage(); $locale = $language->getTag(); //Store the locale for future reference $mainLocale = $locale; if ($mainLocale !== false) { //The class does not exist, default to JDate $classname = 'JDate'; } } else { //No tag, so default to JDate $classname = 'JDate'; } } $key = $time . '-' . $tzOffset; // if (!isset($instances[$classname][$key])) { $tmp = new $classname($time, $tzOffset); //We need to serialize to break the reference // $instances[$classname][$key] = serialize($tmp); // unset($tmp); // } // $date = unserialize($instances[$classname][$key]); // return $date; return $tmp; }