【问题标题】:Datepicker's format on initializationDatepicker 初始化时的格式
【发布时间】:2018-09-13 12:49:50
【问题描述】:

我的数据库中有一个表,其中有一列 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?谢谢。

【问题讨论】:

  • 所以来自 db 的日期是 yy-mm-dd 并且您想以 dd-mm-yy 格式显示它,对吧?
  • @Pavan,完全正确
  • @AlexZakruzhetskyi 你用的是什么框架?我的意思是 c#,mvc

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


【解决方案1】:

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

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

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

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

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'

这样您可以在一个地方更改格式,甚至可以接受不同的语言(您可以使用本地化格式,而不是在脚本上硬编码格式)。

【讨论】:

  • 谢谢你,你拯救了我的一天。
猜你喜欢
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 2017-11-08
  • 1970-01-01
  • 1970-01-01
  • 2019-08-20
相关资源
最近更新 更多