Estoy usando fullcalendar para renderizar eventos de varios Google Calendars. Cada calendario representa eventos en una ubicación específica y quiero mostrar todos los eventos en las zonas horarias originales, independientemente de la ubicación del cliente.

Por ejemplo: un evento que comienza a las 8 a. M. En Tokio debe mostrarse a las 8 a. M. Para todos, en todas partes (el calendario de la página está etiquetado como relevante para Tokio).

Actualmente, de forma predeterminada, todos los eventos se están convirtiendo a la zona horaria local del cliente; aquí en Londres, mi evento de las 8 a. M. En Tokio se muestra comenzando a las 11 p. M.

La única forma en que logré mostrar los eventos en la zona horaria original es inicializar explícitamente cada calendario con la cadena TZ correspondiente para la opción timezone, pero se siente mal tener que ir a esta longitud, ya que la zona horaria debe ya sea conocido.

¿Es este el comportamiento esperado o hay un problema con los eventos del calendario en sí?

0
bbodien 14 dic. 2016 a las 17:34

2 respuestas

La mejor respuesta

Básicamente, puede definir la zona horaria en el evento start y end params. Me gusta

{ title: "event1", start: "2013-10-20T02:00:00+09:00" }

Donde +09:00 indica la zona horaria. Para obtener más información: https://fullcalendar.io/docs/timezone/timezone/

Si está obteniendo eventos del calendario de Google, puede preparar sus eventos para que contengan la zona horaria como

              ...............
                $single_event['event_id'] = $event['id'];
                $single_event['title'] = $event['summary']; ´
                $single_event['start'] = $date->format('Y-m-d'); // change here
                $single_event['time'] = $date->format('H:i');
                $single_event['endtime'] = $enddate->format('H:i');

                array_push($event_list, $single_event);
                ...............

Si usa las credenciales de Google directamente en el calendario completo https://fullcalendar.io/docs/google_calendar/

Luego, simplemente verifique la configuración de la zona horaria de su calendario de Google.

1
Ruhul Amin 15 dic. 2016 a las 10:00

El problema era que la configuración de la zona horaria de Google Calendar era incorrecta. Una vez que esto se cambió en cada calendario que se usaba como fuente, los eventos aparecían en la zona horaria correcta para cada calendario regional.

0
bbodien 14 dic. 2016 a las 17:19