Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

299
Visualizações
Diferencia entre dos tiempos en segundos en carbono según la zona horaria

Quiero averiguar la diferencia entre 2 veces para la zona horaria diferente. Mi servidor está basado en Sydney y quiero encontrar la diferencia entre la hora dada y la hora actual (basada en Perth) en segundos

 echo $tz = Carbon::now('Australia/Perth'); echo "<br>"; $local='2017-04-11 12:39:50'; echo $emitted = Carbon::parse($local); echo "<br>"; echo "diff from carbon->"; echo $diff = $tz->diffInSeconds($emitted); echo "<br> diff from Normal->"; echo $diff1 = strtotime($tz) - strtotime($emitted);

Cuando usé diffInSeconds , dio una diferencia de 2 horas y parece que la localización no se tiene en cuenta, pero strtotime($tz) - strtotime($emitted) da un resultado perfecto. ¿Algo que me perdí?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Debe decirle a Carbon qué zona horaria se usa para la cadena que debe analizarse. Creo que la función strtotime no es la opción correcta para usted, porque siempre considera que las cadenas analizadas usan la zona horaria de default_timezone_get()

Por ejemplo:

 echo $now = Carbon::now('Australia/Perth'); echo "<br>"; echo $emitted = Carbon::parse($now, 'Australia/Sydney'); echo "<br>"; echo "diff from carbon->"; echo $diff = $now->diffInSeconds($emitted); echo "<br> diff from Normal->"; echo $diff1 = strtotime($now) - strtotime($emitted);

Daría como resultado:

 diff from carbon->7200 diff from Normal->0

La diferencia normal obviamente es incorrecta ya que se supone que $emited debe usar 'Australia/Sydney' y $now debe usar 'Australia/Perth'. Pero como las dos variables tienen exactamente la misma representación de cadena, la diferencia es 0. (Se pierde la información sobre las diferentes zonas horarias).

Sin embargo, la diferencia con Carbon muestra la diferencia correcta de 7200 segundos (= 2 horas), que es la diferencia real entre Australia/Sídney y Australia/Perth.

De forma predeterminada, todas las funciones de fecha y hora (incluido Carbon) usan el valor de la variable de zona horaria en su archivo config/app.php .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda