私は次のdatetimepickerを使用しています。これは、私の理解では、拡張されたjquery-uidatepickerです。
http://trentrichardson.com/examples/timepicker/
私の問題は、ユーザーに午前と午後の時刻を表示したいのですが、mysqlデータベースに送信するときに時刻の形式が標準の「YY-mm-dd--hh:mm: ss"形式。
これは現在入力されている形式です
私は次のdatetimepickerを使用しています。これは、私の理解では、拡張されたjquery-uidatepickerです。
http://trentrichardson.com/examples/timepicker/
私の問題は、ユーザーに午前と午後の時刻を表示したいのですが、mysqlデータベースに送信するときに時刻の形式が標準の「YY-mm-dd--hh:mm: ss"形式。
これは現在入力されている形式です
jQuery UIの日付ピッカーは、まさにこの目的のために、それらへの受け渡しaltField
とオプションをサポートしています。altFormat
使用しているプラグインは、それを拡張することもサポートしています(ただし、紛らわしい方法です)。これが、必要なものを手に入れるための正しいレベルのオプションだと思います。ここでライブでお試しください
これらの要素を持つフォームを想定します。
<input type="text" id="datetime" />
<input type="hidden" id="datetime_to_server" name="formatted_date_time" />
次に、datetimepickerウィジェットを次のように設定できます。
$('#datetime').datetimepicker(
{ altField : '#datetime_to_server', // selector of the hidden input field you want sent to the server
altFormat : 'yy-m-d',
altFieldTimeOnly : false,
altTimeFormat : 'hh:mm:00' } );
上記と同じ問題を抱えている人のために、上記のプラグインの開発者から、フォーマットの責任はミドルウェア(ruby、php、pythonなど)にあるべきであるという良いアドバイスを受けました。そこで、検索を行った後、次のgemを見つけて、Gemfileに追加しました。
gem 'validates_timeliness'
このプラグインは適時性の宝石に依存しており、箱から出して多くの異なるフォーマットを受け入れる多くの組み込み関数を備えています。
これをモデルに追加すると、完了です。
validates_datetime :date_paid_on, :allow_blank => true
カスタムパーサーが必要になる可能性があるシナリオに遭遇する可能性があります。その場合は、validates_timeliness.rb初期化子に以下を追加してください。
config.parser.add_formats(:datetime, 'yyyy-mm-dd hh:nn:ss tz')