web-dev-qa-db-fra.com

Est-ce que j'utilise le JDate correctement?

En fait, je rencontre un problème d'utilisation de JDate.

Joomla a une classe JDate pour la gestion des dates. J'ai testé le code suivant:

$date = new JDate('2017-07-28 00:00:00');
$timestamp_jdate = $date->toUnix();
$timestamp = strtotime('2017-07-28 00:00:00');

Je m'attendais à ce que $ timestamp_jdate et $ timestamp donnent le même résultat, mais voici les résultats que j'ai obtenus: $ timestamp_jdate = 1501200000 $ timestamp = 1501192800

Est-ce que j'ai fait quelque chose de mal? Comment puis-je le réparer?

J'ai vu dans l'API que le constructeur JDate peut avoir un deuxième paramètre $ tz mais il n'est pas bien documenté, alors je dois peut-être définir ce paramètre?

Toute aide serait reconnaissante :-)

1
titchagcreation

$ tz est le fuseau horaire. Après avoir défini le fuseau horaire par défaut du système, les 2 horodatages correspondent! Par défaut, le fuseau horaire sur Joomla est UTC. Le fuseau horaire de mon système était 'Europe/Berlin'.

J'espère que cela aide d'autres personnes.

3
titchagcreation

Laissez Joomla! s'occupe de tout pour toi.

$date = JFactory::getDate('2017-07-28 00:00:00');
$unixDate = $date->toUnix();

Ou

$date = new JDate(JHtml::date('2017-07-28 00:00:00', 'Y-m-d H:i:s'));
$unixDate = $date->toUnix();
1
Nagarjun