Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

351
Vistas
Laravel 5.3 - Carbon Date - UTC offset obtener el nombre de la zona horaria

Estoy tratando de obtener un nombre de zona horaria de un desplazamiento UTC en Laravel 5.3 usando Carbon. Código enumerado a continuación, cualquier ayuda sería muy apreciada.

 /* current code iteration */ $utcOffset = -5; $timezone = Carbon::now($utcOffset)->timezone->getName(); echo $timezone; // Result: -05:00 // Expected Result: EST /* tried code */ $timezone = Carbon::now($utcOffset)->tzName; // Result: -05:00 /* What I used prior to Carbon */ $timezone = timezone_name_from_abbr(null, $utcOffset * 3600, TRUE); $dateTime = new DateTime(); $dateTime->setTimeZone(new DateTimeZone($timezone)); $timezone = $dateTime->format('T');'

¿Qué me estoy perdiendo? me siento tonta..

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Prefacio:

La respuesta aceptada funciona en la mayoría de los casos, pero como se menciona en el área de notas aportadas por el usuario de timezone_name_from_abbr() , hay problemas con el uso de la función, como devolver falso en lugar de la zona horaria real y devolver un identificador de zona horaria "histórico" (es decir, obsoleto) en lugar de el estándar actual para una ubicación dada. Los cuales siguen vigentes hasta la fecha.

Además, el código original devuelve el valor esperado, siempre que sepa que según los documentos de Carbon, si consulta https://carbon.nesbot.com/docs/#api-timezone

el nombre original de la zona horaria (puede ser el nombre de la región o una cadena de desplazamiento):

Una cosa más a tener en cuenta aquí es que no se considera confiable derivar la zona horaria del valor de compensación, ya que no tiene en cuenta la compensación de los períodos observados del horario de verano.

Entonces, todo esto para decir que derivar la zona horaria del desplazamiento no siempre es posible.

Responder:

Pero dado que el OP mencionó Carbon y la zona horaria en función de la compensación, según los documentos de Carbon a partir de ahora, la respuesta debería ser

 $date = Carbon::now('-5'); echo $date->tzName;
about 4 years ago · Santiago Trujillo Denunciar

0

Intenté actualizar Carbon sin éxito y terminé usando la antigua clase de fecha y hora.

 $timezone = timezone_name_from_abbr(null, $utcOffset * 3600, TRUE); $dateTime = new DateTime(); $dateTime->setTimeZone(new DateTimeZone($timezone)); $timezone = $dateTime->format('T');
about 4 years ago · Santiago Trujillo Denunciar

0

En un nuevo Carbon es la propiedad timezoneName ;

 $now = Carbon::now(-5); echo $now->timezoneName; //or echo $now->timezone->getName();
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda