it-swarm.com.de

So erhalten Sie das Datum mit angewendetem Zeitzonenversatz

Der folgende Code funktioniert und gibt das Datum für die verschiedenen Offsets aus:

echo 'Australia/Sydney' . JFactory::getDate('now', 'Australia/Sydney');
echo "<BR>";
echo 'UTC' . JFactory::getDate('now', 'UTC');
echo "<BR>";
echo 'Asia/Jakarta ' . JFactory::getDate('now', 'Asia/Jakarta');

Aber dieser Code

echo 'Australia/Sydney' . JFactory::getDate('today', 'Australia/Sydney');
echo "<BR>";
echo 'UTC' . JFactory::getDate('today', 'UTC');
echo "<BR>";
echo 'Asia/Jakarta ' . JFactory::getDate('today', 'Asia/Jakarta');

Alle geben mir das gleiche Ergebnis: 2015-04-29 00:00:00

Wie kann ich Joomla dazu bringen, mir ein Datum mit dem von mir ausgewählten Zeitzonenversatz zu geben?

1
Mat Kay

OK, also ich glaube das ist wahr :)

Ich suchte nach einer Joomla-Antwort, während ich etwas Joomla und PHP verwenden musste, um das zu bekommen, was ich wollte.

JDate arbeitet standardmäßig mit der UTC-Zeitzone.

Daher müssen Sie Ihren Server-Zeitzonen-Offset (oder den Benutzer-Zeitzonen-Offset) zuerst auf das Datum anwenden. Dieser Weg,

$config = JFactory::getConfig();
$offset = $config->get('offset');
echo $offset;
echo "<br>";
$date = new JDate('today', $offset);
echo $date;
echo "<br>";
$date->setTimezone(new DateTimeZone('UTC'));
echo $date;
echo "<br>";

Die Ausgabe des oben genannten war für mich: Australien/Melbourne 30.04.2015 00:00:00 29.04.2015 14:00:00

und jetzt habe ich den UTC-Offset von heute für meinen Server und kann damit Daten abfragen.

5
Mat Kay

Dies kann entweder die Zeitzone des Systems sein: System => Globale Konfiguration => Server => Standorteinstellungen

Für diesen bestimmten Benutzer ist im Benutzermanager eine andere Zeitzone festgelegt: Benutzer => Benutzermanager => Name => Grundeinstellungen => Zeitzone

0
CreativeChris