with tutorial framework espaƱol djangoproject desde con cero applications ruby-on-rails user-interface timezone time-select

tutorial - time_select con 12 horas de hora y zona horaria en Ruby on Rails



tutorial django (2)

Tengo la necesidad de capturar una hora y zona horaria de los usuarios de una aplicación de carriles 2.3.8, pero no he podido pensar en una solución limpia para crear y analizar las selecciones.

Lo ideal sería tener un menú desplegable para lo siguiente:

  • hora (1-12)
  • minuto (0-59)
  • AM PM
  • Zona horaria

¿Hay una joya / complemento que logre lo que estoy buscando? ¿Necesitaré almacenar tanto la hora como la zona horaria en la base de datos? ¿Cuál es la mejor estrategia para el almacenamiento?

Eventualmente necesitaré escupir estos valores en UTC, pero un usuario debería poder regresar y revisar la hora en el huso horario correcto.


Puede obtener selecciones de zona horaria con los métodos apropiados:

Del mismo modo, hay date_select para las fechas.

Almacenamiento:

Si la zona horaria es específica para el usuario y no cambia, guarde su zona horaria en su registro de usuario y configúrela cuando cargue el usuario_actual. Rails convertirá las horas en / desde UTC y siempre almacenará el UTC en la base de datos y realizará automáticamente la conversión a esa zona horaria predeterminada (¡incluido el horario de verano!). La manera más fácil de hacerlo.

use_zone (zone) le permite anular la zona predeterminada para un bloque, por lo que puede aceptar un valor de formulario y establecerlo con esa función y establecer su valor en ese bloque.

ACTUALIZACIÓN: escribí algunos ejemplos de zona horaria de Rails como una entrada de blog.


Personalmente utilicé jQuery para cambiar la pantalla solamente:

ampm = ["12 AM","01 AM","02 AM","03 AM","04 AM","05 AM","06 AM","07 AM","08 AM","09 AM","10 AM","11 AM","12 PM","01 PM","12 PM","01 PM","02 PM","01 PM","02 PM","03 PM","04 PM","05 PM","06 PM","07 PM","08 PM","09 PM","10 PM","11 PM"] j("#game_start_time_4i option").each(function(index,value){ j(value).html(ampm[index]); });

Rieles:

<%= datetime_select(''game'', ''start_time'') %>