Componente UI: muestra la hora en formato 'Ymd H: i: s' (formato de hora ISO)

9

Creo algunas páginas de listado de administrador por componente de interfaz de usuario, el formato de hora predeterminado en su columna de tiempo es todo lo siguiente

formato de hora predeterminado

Los códigos de componentes de la interfaz de usuario como a continuación

<column name="created_at" class="Magento\Ui\Component\Listing\Columns\Date">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="filter" xsi:type="string">dateRange</item>
            <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item>
            <item name="dataType" xsi:type="string">date</item>
            <item name="label" xsi:type="string" translate="true">Created At</item>
        </item>
    </argument>
</column>

El formato de hora en la base de datos es correcto (formato de hora ISO), eso es lo que quiero mostrar.

ingrese la descripción de la imagen aquí

Entonces, ¿cómo mostrar la hora al formato " Ymd H: i: s " (formato de hora ISO) en el componente UI? Gracias por cualquier consejo :)

Key Shang
fuente
Como tiene alguna pregunta, no dude en ponerse en contacto conmigo. Intentaré ayudarte.
Siarhey Uchukhlebau
@SiarheyUchukhlebau Muchas gracias :) Tu respuesta ya está funcionando, acepta y vota.
Key Shang

Respuestas:

11

Intente cambiar el dateFormatvalor de su columna:

<column name="created_at" class="Magento\Ui\Component\Listing\Columns\Date">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="filter" xsi:type="string">dateRange</item>
            <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item>
            <item name="dataType" xsi:type="string">date</item>
            <item name="label" xsi:type="string" translate="true">Created At</item>
            <item name="dateFormat" xsi:type="string">Y-MM-dd HH:mm:ss</item>
        </item>
    </argument>
</column>

El formato predeterminado se puede encontrar dentro del componente de columna Fecha magento/module-ui/view/base/web/js/grid/columns/date.js

return Column.extend({
    defaults: {
        dateFormat: 'MMM d, YYYY h:mm:ss A'
    },
...

Actualizar:

Además, observe el uso de la y en lugar de YYYY para el año. El componente de fecha usa el formato de fecha de la UCI .

Fuente

Entonces, el formato debe ser ligeramente diferente. Creo que este podría ser adecuado:

<item name="dateFormat" xsi:type="string">Y-MM-dd HH:mm:ss</item>
Siarhey Uchukhlebau
fuente
5

Debe agregar el dateFormatvalor del formato de fecha de la columna como AAAA-MM-dd hh: mm: ss , el formato de fecha y hora de la UCI .

Eche un vistazo al siguiente enlace para obtener más detalles:

http://userguide.icu-project.org/formatparse/datetime

M mes en año

M 9

MM 09

MMM Sep

MMMM septiembre

MMMMM S

d día en mes

dd 02

Y AAAA por año

Entonces la línea de código de formato de fecha es:

<item name="dateFormat" xsi:type="string" translate="true">YYYY-MM-dd hh:mm:ss</item>

Puede probar el siguiente código para su columna de fecha y datos:

<column name="purchase_date" class="Magento\Ui\Component\Listing\Columns\Date">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="label" xsi:type="string" translate="true">Created At</item> 
            <item name="filter" xsi:type="string">dateRange</item>
            <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item>
            <item name="dataType" xsi:type="string">date</item>
            <item name="dateFormat" xsi:type="string" translate="true">YYYY-MM-dd hh:mm a</item>
        </item>
    </argument>
 </column>
Ashish Raj
fuente
Quiero mostrar solo la fecha usando el modificador, pero no funciona
Jaisa
<item name = "dateFormat" xsi: type = "string" translate = "true"> AAAA-MM-dd </item> ¿Intentó con la línea de código anterior?
Ashish Raj