Come utilizzare JDate / HTMLHelper all'interno del modello?

Sep 09 2020

Quindi ho questo componente (costruito con JCB) in cui ho bisogno di visualizzare un datetime salvato dal db (senza secondi, ma non è il mio obiettivo in questo momento). A causa di alcune limitazioni, non posso semplicemente dichiarare le usedichiarazioni all'inizio del modello.

Ora sono al punto che ho chiamato JDatecosì:

$date = new Joomla\CMS\Date\Date($item->kickoff);
$datenow = new JDate($item->kickoff);
$dateHtml = ''; echo '<pre>' . var_export($item->kickoff,true) . '</pre>';
echo '<pre>' . var_export($date,true) . '</pre>'; $item->calculated_name =  $dateHtml;

L'esportazione mi dà:

'2020-07-30 12:00:00'

Joomla\CMS\Date\Date::__set_state(array(
   'tz' => DateTimeZone::__set_state(array(
       'timezone_type' => 2,
       'timezone' => 'GMT',
   )),
   'date' => '2020-07-30 12:00:00.000000',
   'timezone_type' => 2,
   'timezone' => 'GMT',
))

Ora dovrei essere in grado di utilizzare le informazioni dall'esportazione, ma non posso. Non riesco ad accedere $date->dateo $date->get('date')perché è in stato impostato.

Non sono in grado di usarlo HtmlHelperperché non posso usarlo in questo modo:

$dateHtml = new Joomla\CMS\HTML\HTMLHelper($date, Text::_('DATE_FORMAT_FILTER_DATETIME'));

Il mio obiettivo: accedere alla data di inizio calcolata con l'offset (fuso orario di installazione di Joomla)

Eventuali suggerimenti?

Risposte

2 Sharky Sep 09 2020 at 17:48

Joomla\CMS\Date\Datenon ha $dateproprietà o get()metodo. Utilizzare $date->format($format)per formattare la data in cui si $formattrova il formato della data.

Per formattare una data utilizzando Joomla\CMS\HTML\HTMLHelper, chiama il suo metodo di sottolineatura con datecome primo argomento, seguito da data e formato:

Joomla\CMS\HTML\HTMLHelper::_('date', $item->kickoff, $format);