Cargué mi aplicación R Shiny (usando el paquete shinyMobile) a Google Cloud Run usando un Dockerfile, y descubrí que la fecha devuelta por f7DatePicker no coincide con el valor en el widget en sí. Entonces, si pongo 2021-08-02, la fecha real que devuelve (mirando el valor 'input$x') es 2021-08-01, aunque la fecha que se muestra en el widget es 2021-08-02.
SIN EMBARGO, parece que esto solo ocurre para usuarios en zonas horarias particulares. Actualmente me encuentro en Nueva Zelanda y descubro que este problema ocurre con la aplicación móvil para usuarios de Nueva Zelanda; sin embargo, cuando intento ejecutar la aplicación en un servidor en los EE. UU. (es decir, a través de Browserstack), la fecha se devuelve correctamente. PERO cuando ejecuto la aplicación localmente en mi escritorio (en Nueva Zelanda), no tengo este problema. Así que no estoy seguro de si el problema está en el servidor o en el cliente.
Es posible que el problema se deba al horario de verano (ver este enlace ), pero mi servidor local funciona bien, por lo que si este fuera el caso, tendría que ser la interacción entre Cloud Run y el dispositivo móvil de alguna manera.
Aquí está el código que estoy usando para calcular client_time y time_zone_offset (basado en este enlace :)
JavaScript:
HTML('<input type="text" id="client_time" name="client_time" style="display: none;"> '), HTML('<input type="text" id="client_time_zone_offset" name="client_time_zone_offset" style="display: none;"> '), tags$script(' $(function() { var time_now = new Date() $("input#client_time").val(time_now.getTime()) $("input#client_time_zone_offset").val(time_now.getTimezoneOffset()) });')
Brillante: (en server.r)
client_time <<- as.numeric(input$client_time) / 1000 # in s time_zone_offset <<- as.numeric(input$client_time_zone_offset) * 60 # s from GMT curr_datetime <<- as_datetime(client_time - time_zone_offset)
¿Alguna idea de cuál podría ser el problema?
Muchas gracias