Tengo una fecha en este formato. Fri, 15 Jan 2016 15:14:10 +0800
y quiero mostrar el tiempo así 2016-01-15 15:14:10
.
Lo que probé es:
$test="Fri, 15 Jan 2016 15:14:10 +0800";
$t = date('Y-m-d G:i:s',strtotime($test));
echo $t;
Pero está mostrando la fecha en este formato: 2016-01-15 7:14:10
debería ser 2016-01-15 15:14:10
.
¿Cómo puedo hacer esto?
rdiz
Usar H
en cambio:
$test="Fri, 15 Jan 2016 15:14:10 +0800";
$t = date('Y-m-d H:i:s',strtotime($test));
echo $t;
H: formato de 24 horas de una hora con ceros iniciales del 00 al 23
G debería ser el mismo, pero sin ceros a la izquierda. Sospecho que su PHP está configurado en una zona horaria diferente a la +0800
. ¿Puedes confirmar tu zona horaria (date_default_timezone_get()
)?
EDITAR
OP confirmó que su zona horaria estaba configurada en UTC, en cuyo caso enmascara el sentido perfecto de que muestra las 7 de la mañana, como date
utiliza la zona horaria predeterminada de PHP.
Si desea “heredar” la zona horaria, mientras obtiene más flexibilidad, debe cambiar a DateTime
:
echo (new DateTime($test))->format("Y-m-d H:i:s");
-
date_default_timezone_get()
mostrar como solo UTC–Pathik Vejani
1 de febrero de 2016 a las 9:41
-
también lo intenté
H
pero sin suerte, mostrando2016-01-15 07:14:10
–Pathik Vejani
1 de febrero de 2016 a las 9:42
-
Es por eso. Está ingresando una fecha de una zona horaria que es 8 horas después de UTC, en cuyo caso tiene mucho sentido que corresponda a las 7 de la mañana en su hora local.
– rdiz
1 de febrero de 2016 a las 9:43
-
Entonces, ¿qué tengo que hacer ahora? ¿Cómo puedo configurar?
–Pathik Vejani
1 de febrero de 2016 a las 9:43
-
No voté negativo, así que no lo sé. Probablemente porque parece que no se esforzó tanto en investigar o consultar el manual de PHP antes de crear una pregunta aquí.
– rdiz
1 de febrero de 2016 a las 9:49
anteamor
https://www.w3schools.com/php/php_date.asp
obtener una fecha
El parámetro de formato requerido de la función date() especifica cómo formatear la fecha (o la hora).
Aquí hay algunos caracteres que se usan comúnmente para las fechas:
- d – Representa el día del mes (01 a 31)
- m – Representa un mes (01 a 12)
- Y – Representa un año (en cuatro dígitos)
- l (‘L’ minúscula) – Representa el día de la semana
obtener un tiempo
Aquí hay algunos caracteres que se usan comúnmente para veces:
- H – formato de 24 horas de una hora (00 a 23)
- h – formato de 12 horas de una hora con ceros a la izquierda (01 a 12)
- i – Minutos con ceros a la izquierda (00 a 59)
- s – Segundos con ceros a la izquierda (00 a 59)
- a – Antemeridiem y Postmeridiem minúsculas (am o pm)
https://www.php.net/manual/en/datetime.format.php
public DateTime::format ( string $format ) : string
<?php
$datetime = new DateTime( "now", new DateTimeZone( "Europe/Bucharest" ) );
echo $datetime->format( 'Y-m-d H:i:s' );
¿Cuál es la configuración de la zona horaria en su servidor?
– Marcos Baker
1 de febrero de 2016 a las 9:37