Datepicker的初始化格式

时间:2018-09-13 12:49:50

标签: jquery ruby-on-rails jquery-ui-datepicker

我的数据库中有一个带有列date的表。当我编辑此表时,输入的值具有以下格式:yy-mm-dd。在我的js文件中,我初始化了datepicker:

$('#date-input').datepicker({
            numberOfMonths: 1,
            isRTL : $('body').hasClass('rtl') ? true : false,
            prevText: '<i class="fa fa-angle-left"></i>',
            nextText: '<i class="fa fa-angle-right"></i>',
            showButtonPanel: false,
            dateFormat: 'dd-mm-yy'
        });

如您所见,我已经指定了格式:dateFormat: 'dd-mm-yy',但是只有当我从选择器中选择日期时它才起作用。有什么方法可以设置适当的日期格式,因此在编辑日期时,例如为01-09-2018,而不是2018-09-01?谢谢。

1 个答案:

答案 0 :(得分:1)

您必须在编辑模板上设置正确的格式。假设您对一个对象使用form_for:

f.text_field :some_date, @object.some_date.to_formatted_s('dd-mm-yy')

那么初始日期将是datepicker的格式配置可以理解的日期。

您可以使用本地化来减少硬编码:

f.text_field :some_date, l(@object.some_date, format: :input)
# `l` method is a shortcut for I18n.l, a shortcut for I18n.localize

,然后在es.yml上有一个日期格式(我想您没有使用该格式开发英文应用程序):

es:
  date:
    formats:
      input: 'dd-mm-yy'

这样,您可以在一处更改格式,甚至接受不同的语言(您也可以使用本地化格式,而不必在脚本上对格式进行硬编码)。