Joomla! Programmierung/Framework/JFactory/getDate

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

JFactory/getDate Liefert eine Referenz zu dem globalen JDate Objekt. Wird nur neu erstellt, wenn es noch nicht existiert.

Inhaltsverzeichnis

[Bearbeiten] Syntax

static getDate( [$time], [$tzOffset] )
  • @return object JDate
  • @since Joomla 1.5
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

[Bearbeiten] Quellcode

Joomla 11.1 JFactory::getDate()

Folder blue.png libraries/joomla

  • File php.png factory.php
  1. public static function getDate($time = 'now', $tzOffset = null)
  2. {
  3. jimport('joomla.utilities.date');
  4. static $instances;
  5. static $classname;
  6. static $mainLocale;
  7.  
  8. if (!isset($instances)) {
  9. $instances = array();
  10. }
  11.  
  12. $language = self::getLanguage();
  13. $locale = $language->getTag();
  14.  
  15. if (!isset($classname) || $locale != $mainLocale) {
  16. //Store the locale for future reference
  17. $mainLocale = $locale;
  18.  
  19. if ($mainLocale !== false) {
  20. $classname = str_replace('-', '_', $mainLocale).'Date';
  21.  
  22. if (!class_exists($classname)) {
  23. //The class does not exist, default to JDate
  24. $classname = 'JDate';
  25. }
  26. }
  27. else {
  28. //No tag, so default to JDate
  29. $classname = 'JDate';
  30. }
  31. }
  32. $key = $time . '-' . $tzOffset;
  33.  
  34. // if (!isset($instances[$classname][$key])) {
  35. $tmp = new $classname($time, $tzOffset);
  36. //We need to serialize to break the reference
  37. // $instances[$classname][$key] = serialize($tmp);
  38. // unset($tmp);
  39. // }
  40.  
  41. // $date = unserialize($instances[$classname][$key]);
  42. // return $date;
  43. return $tmp;
  44. }
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge