Tengo un trabajo cron de WordPress que envía un correo electrónico periódicamente y guarda la marca de tiempo cuando se envió como una opción, y me gustaría mostrar una fecha en una página de configuración. Algo así como: "El último correo electrónico se envió en 'x'". Estoy en la costa oeste de los EE. UU., Por lo que nuestro tiempo es actualmente de siete horas fuera de UTC.
Mi salida esperada de date_i18n (), pasando la marca de tiempo, sería una fecha formateada localmente con un ajuste de siete horas desde UTC. Sin embargo, devuelve la hora en UTC. Incluso tratar de obtener la hora actual no devuelve lo que creo que sería el resultado esperado.
Por ejemplo: echo date_i18n('F d, Y H:i');
salidas 05 de abril de 2013 11:36 como se esperaba, pero echo date_i18n('F d, Y H:i',time());
salidas 05 de abril de 2013 18:36.
¿Es esto intencional? ¿Cómo puedo devolver una fecha con formato local de una marca de tiempo preexistente? Gracias por cualquier ayuda.
Respuestas:
Sé que llego tres meses tarde, pero la función que quieres aquí es WordPress '
get_date_from_gmt()
.La función acepta una fecha GMT / UTC en
Y-m-d H:i:s
formato como primer parámetro y el formato de fecha deseado como segundo parámetro. Convertirá su fecha a la zona horaria local como se establece en la pantalla Configuración.Ejemplo de uso:
echo get_date_from_gmt( date( 'Y-m-d H:i:s', $my_unix_timestamp ), 'F j, Y H:i:s' );
fuente
echo get_date_from_gmt ( date( 'Y-m-d H:i:s', $my_timestamp ), get_option('date_format') . ' - '. get_option('time_format') );
Del códice :
Prueba esto:
Esto establece la fecha predeterminada de PHP en la opción timezone_string de WP, si está disponible, durante la duración del script.
fuente
date_i18n('F d, Y H:i', $your_timestamp)
que no funcione?echo date_i18n('F d, Y H:i',1365194723)
declaración en la parte superior de index.php, que me da UTC en lugar de tiempo en la costa oeste de EE. UU.date_i18n($format, $timestamp)
formatos según la configuración regional, pero no la zona horaria.get_date_from_gmt($datestring, $format)
formatos según la zona horaria, pero no la configuración regional. Para obtener el formato de acuerdo con la zona horaria y la configuración regional, estoy haciendo lo siguiente:Programa de ejemplo:
Salida para la zona horaria de Los Ángeles:
Referencias
DateTimeZone
documentos en php.netDateTime
documentos en php.net, incluidossetTimestamp
,getTimestamp
yformat
date_i18n
docsfuente
Agregue compensación de zona horaria a su marca de tiempo.
o mejor;
fuente
Convertir UTC a cadena en zona horaria, idioma y formato en las opciones de WordPress
He creado una función de buen documento que convierte una cadena de fecha y hora en UTC en una bonita cadena de fecha y hora en el idioma, formato y zona horaria correctos. Siéntase libre de copiarlo.
Por ejemplo, pasar
"2019-05-30 18:06:01"
(en UTC) volvería"Maggio 30, 2019 10:06 am"
.Referencias
get_date_from_gmt
docsDateTimeZone
documentos en php.netDateTime
documentos en php.net, incluidosgetTimestamp
date_i18n
docsdate_default_timezone_set( 'UTC' );
independientemente de la zona horaria que el administrador haya seleccionado en la interfaz de usuario, así que tenga esto en cuenta al determinar el comportamiento de las funciones PHP integradas. Verdate_default_timezone_set
documentos en php.net.fuente
Esto es lo que parece funcionar en mi máquina (ninguna de las otras cosas funcionó):
Código original: https://www.simonholywell.com/post/2013/12/convert-utc-to-local-time/
No está usando,
date_l18n()
pero supongo que uno podría usarlo más adelante ...fuente