【问题标题】:Knockout Daterangepicker correct moment formatting of date淘汰 Daterangepicker 正确的日期格式
【发布时间】:2016-09-24 17:53:00
【问题描述】:

我正在尝试使用 datepicker:https://sensortower.github.io/daterangepicker 来拥有一个带淘汰赛的 datepicker。

一切正常,但我还希望选择器本身中的自定义日期字段为“DD-MM-YYY”(而不是当前的“DD/MM/YYYY”

我的模板定义是:

<input type="text" readonly class="form-control" 
  data-bind=" daterangepicker: dateRange,
              daterangepickerOptions: { 
                maxDate: [moment().add(20,'years')],                                  
                ranges: {
                  'Komende maand': [moment(), moment().add(1,'month')],
                  'Komende week': [moment(), moment().add(1,'week')],
                  'Altijd': 'all-time',
                  'Aangepast:': 'custom'
                },
                periods: ['day'],
                locale: 'nl',
                timeZone: null
              },
              daterangepickerFormat: 'DD-MM-YYYY'," />

所以在选择器本身中它会显示要更改的当前日期,但这些仍然是“en”格式。

【问题讨论】:

  • 奇怪的是,它没有 format 选项。

标签: knockout.js momentjs daterangepicker


【解决方案1】:

您确定支持nl 语言环境设置标志吗?替换为:

locale: { inputFormat: 'DD-MM-YYYY' },

标签改变了。

解释:

我试图找出哪个库的源代码呈现了您想要更改的标签。原来使用了一个名为inputFormat 的设置,它应该存储在locale 对象中。

以下是默认设置如何应用于此对象:

Config.prototype._locale = function(val) {
  return $.extend({
    applyButtonTitle: 'Apply',
    cancelButtonTitle: 'Cancel',
    inputFormat: 'L',
    startLabel: 'Sart',
    endLabel: 'End'
  }, val || {});
};

您会看到"L" 值被用作默认格式,这会产生DD/MM/YYYY 字符串。用字符串扩展对象(模板中的"nl")对我来说没有多大意义,所以我猜你必须创建自己的设置对象。您可以根据 moment.js 的语言环境设置来计算它。

(我将一个包含您正在使用的所有库的文件放在一个代码笔中,并表明我的建议有效:http://codepen.io/anon/pen/xEWJKd

【讨论】:

  • 谢谢,是的,我认为本地确实会参考时刻的语言环境
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-05
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
相关资源
最近更新 更多