KendoDateTime选择器格式

时间:2014-04-18 08:47:51

标签: kendo-ui knockout-kendo kendo-datetimepicker

我有一个淘汰赛观察站,其中包含日期和时间。那个observable绑定了kendoDateTime选择器。我无法绑定选择器中的可观察值。 以下是相同的jsfiddle链接:http://jsfiddle.net/ye865/74/

JS代码:

function ViewModel() {
    var self = this;
    self.bigday = ko.observable("1997-07-16T19:20:30"); 
}

ko.applyBindings(new ViewModel());

HTML code:

<span data-bind="text: bigday"></span>
<input data-bind="kendoDateTimePicker: { value: bigday, format: 'yyyy-MM-dd hh:mm' }" />

可观察的值:&#34; 1997-07-16T19:20:30&#34; 应绑定到dateTimePicker。

任何人都可以帮我吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您的格式字符串不正确:您错过了T且小时数应为HH

format: 'yyyy-MM-ddTHH:mm'

但你可能想把它放在parseFormats选项中,所以显示器没有T:

<input id="text" data-bind="kendoDateTimePicker: { value: bigday, 
    format: 'yyyy-MM-dd HH:mm', parseFormats: ['yyyy-MM-ddTHH:mm']}" />

演示JSFiddle

要在一个observable中以格式化方式选择一个日期,你需要有一个单独的observable,因为日期选择器的value属性返回一个Date对象,你需要手动格式化它一个字符串,例如使用computed

function ViewModel() {
    var self = this;
    self.bigday = ko.observable("1997-07-16T19:20:30");
    self.formatted = ko.computed(function() {
        return kendo.toString(self.bigday(), 'yyyy-MM-dd HH:mm');
    });
}

演示JSFiddle

您甚至可以将格式化的值反馈到原始bigday

self.bigday = ko.observable("1997-07-16T19:20:30");
self.bigday.subscribe(function() {
    self.bigday(kendo.toString(self.bigday(), 'yyyy-MM-dd HH:mm'));
});

演示JSFddle