¿Cómo usar JDate / HTMLHelper dentro del modelo?

Sep 09 2020

Entonces, tengo este componente (construido con JCB) donde necesito mostrar una fecha y hora guardada de la base de datos (sin segundos, pero ese no es mi enfoque en este momento). Debido a algunas limitaciones, no puedo simplemente declarar usedeclaraciones en la parte superior del modelo.

Ahora estoy en el punto en el que llamé JDateasí:

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

La exportación me da:

'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',
))

Ahora debería poder utilizar la información de la exportación, pero no puedo. No puedo acceder $date->dateo $date->get('date')porque está en estado configurado.

No puedo usarlo HtmlHelperporque no puedo usarlo así:

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

Mi objetivo: acceder a la fecha de inicio calculada con el desplazamiento (zona horaria de instalación de Joomla)

¿Alguna pista?

Respuestas

2 Sharky Sep 09 2020 at 17:48

Joomla\CMS\Date\Dateno tiene $datepropiedad ni get()método. Use $date->format($format)para formatear la fecha donde $formatestá el formato de fecha.

Para formatear una fecha usando Joomla\CMS\HTML\HTMLHelper, llame a su método de subrayado con el dateprimer argumento, seguido de la fecha y el formato:

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