Como usar JDate / HTMLHelper dentro do modelo?

Sep 09 2020

Então, eu tenho esse componente (criado com JCB) onde preciso exibir uma data e hora salva do banco de dados (sem segundos, mas esse não é meu foco agora). Por causa de algumas limitações, não posso simplesmente declarar useafirmações no topo do modelo.

Estou agora no ponto em que chamei JDateassim:

$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;

A exportação me 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',
))

Agora devo conseguir usar as informações da exportação, mas não posso. Não consigo acessar $date->dateou $date->get('date')porque está em estado definido.

Não consigo usar HtmlHelperporque não consigo usar desta forma:

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

Meu objetivo: acessar a data de início calculada com o deslocamento (fuso horário de instalação do Joomla)

Alguma dica?

Respostas

2 Sharky Sep 09 2020 at 17:48

Joomla\CMS\Date\Datenão tem $datepropriedade ou get()método. Use $date->format($format)para formatar a data onde $formatestá o formato da data.

Para formatar uma data usando Joomla\CMS\HTML\HTMLHelper, chame seu método de sublinhado com dateo primeiro argumento, seguido por data e formato:

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