Quiero mostrar "Hoy" cuando la hora de reunión es hoy. meeting_time se guarda en UTC y luego se convierte a la zona horaria local:

<% meeting_time = meeting.meeting_time.in_time_zone("Eastern Time (US & Canada)") %>

<% meeting_time.today? %> se evalúa como verdadero a las 7 p. M. Del día anterior, porque "¿hoy?" es una hora UTC, creo.

¿Cómo puedo utilizar el método "hoy" en una zona horaria diferente? Ya probé:

<% meeting_time.today.in_time_zone("Eastern Time (US & Canada)")? %>

Pero esto arroja un error.

¡Gracias!

0
gwalshington 3 ene. 2017 a las 04:27
2
Establezca la zona horaria primero usando Time.zone = 'Eastern Time (US & Canada)' antes de llamar a meeting_time.today?
 – 
jvnill
3 ene. 2017 a las 04:32
1
Wow, eso es tan sencillo que me siento tonto ... ¿pueden publicar como respuesta a continuación para que pueda aceptar? ¡Gracias!
 – 
gwalshington
3 ene. 2017 a las 04:36

1 respuesta

La mejor respuesta

Configure la zona horaria primero usando Time.zone = 'Eastern Time (US & Canada)' antes de llamar a meeting_time.today?. Sin embargo, tenga en cuenta que esto establece la aplicación de zona horaria amplia. Por lo general, solo hace esto en los archivos de configuración.

ACTUALIZACIÓN

Utilice Time.use_zone('Eastern Time (US & Canada)') para sus necesidades.

Time.use_zone('Eastern Time (US & Canada)') do
  meeting_time.today?
end
3
jvnill 3 ene. 2017 a las 06:10
¿Cómo no puedo configurarlo en toda la aplicación? Solo quiero comparar el tiempo en este controlador. ¡Gracias!
 – 
gwalshington
3 ene. 2017 a las 04:54