Я пытаюсь установить bootstrap-datepicker в поля ввода даты в моем приложении. После выбора даты в календаре я хочу, чтобы дата отображалась как «дд / мм / гггг». Даты сохраняются в таблице (sqlite) в формате «гггг-мм-дд».

Я сделал следующее:

В файле application.js у меня есть:

   //= require jquery
   //= require jquery_ujs
   //= require jquery-ui
   //= require turbolinks
   //= require bootstrap-datepicker
   //= require_tree .

В файле application.html.erb у меня есть:

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

В custom.css.scss у меня есть:

  @import "bootstrap-sprockets";
  @import "bootstrap";

В связанном файле .js у меня есть:

   $(document).on("focus", "[data-behaviour~='datepicker']", function(e){
   $(this).datepicker({"format": "dd-mm-yy", "weekStart": 1, autoclose": true, "language": 'en-GB'})});

Я также пробовал этот код в файле application.js - безуспешно.

В соответствующей форме у меня есть:

    <a> Start Date/time: </a>
    <%= f.text_field :start_date, 'data-behaviour' => 'datepicker', size:10 %>

Результат: у меня есть календарь, в котором я могу выбрать дату, но дата отображается в формате по умолчанию «мм / дд / гггг».

Другие попытки: я поместил сценарий в форму, но это тоже не сработало.

Любая помощь будет безмерно оценена.

Заранее спасибо,

0
user3331154 23 Янв 2016 в 08:37

3 ответа

Лучший ответ

Я также столкнулся с такой ситуацией, когда я хочу, чтобы один формат даты отображал дату в текстовом поле, а другой формат - для сохранения даты.

Так что моя работа выглядит следующим образом

Объявите разные поля, чтобы принять дату и сохранить дату. здесь мое поле принятия - « select_date », а фактическое поле - « date »

= text_field_tag :select_date, '', :class => "datepicker"
= hidden_field_tag("date", "", :id => "request_date") 

Невозможно отобразить выбранную дату с помощью Bootstrap-datepicker-rails как «дд / мм / гггг»…

$(function() {
  $(".datepicker").datepicker({ 
    dateFormat: 'DD MM d',
    altField: '#request_date',
    altFormat: "yy-mm-dd"
  });
});

Поэтому, когда вы выбираете значение в календаре, оно заполняет оба поля в разном формате.

1
chaitanya 23 Янв 2016 в 11:08

Вы можете распечатать дату в формате 'dd/mm/yyyy', используя strftime

<a> Start Date/time: </a>
<%= f.text_field :start_date, value: (f.object.start_date.strftime("%d-%m-%Y") if f.object.start_date.present?), 'data-behaviour' => 'datepicker', size:10 %>
0
Developer 23 Янв 2016 в 06:06

Вы можете установить формат даты как атрибут данных как,

<%= f.text_field :start_date, 'data-behaviour' => 'datepicker', size:10, 'data-date-format' => "mm/dd/yyyy")
1
Sasidaran 23 Янв 2016 в 08:32