无法使用 Bootstrap-datepicker-rails 作为 "dd/mm/yyyy" 显示所选日期

Cannot display selected date using Bootstrap-datepicker-rails as "dd/mm/yyyy"

我正在尝试将 bootstrap-datepicker 放在我的应用程序的日期输入字段上。从日历中 select 编辑日期后,我希望日期显示为 'dd/mm/yyyy'。日期以 'yyyy-mm-dd' 格式保存在 table (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 %>

结果:我得到一个日历,我可以从中 select 一个日期,但日期显示为默认格式 "mm/dd/yyyy"。

其他尝试:我已将脚本放入表单中,但也没有用。

我们将不胜感激任何帮助。

提前致谢,

您可以使用 strftime

'dd/mm/yyyy' 格式打印日期
<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 %>

您可以将日期格式设置为数据属性,

<%= f.text_field :start_date, 'data-behaviour' => 'datepicker', size:10, 'data-date-format' => "mm/dd/yyyy")

我也遇到过这种情况,我想要一种日期格式在文本字段中显示日期,而另一种格式来保存日期。

所以我的解决方法如下

声明不同的字段来接受日期和保存日期。 这里我的接受字段是“select_date”,实际字段是“date

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

简单的脚本帮助我在这两个领域都节省了价值。

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

所以当您在日历中 select 值时,它会以不同的格式填充两个字段。