Формат KendoDateTime picker

У меня есть наблюдаемый нокаут, который содержит дату и время. Этот наблюдаемый объект привязан к средству выбора 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-код:

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

Наблюдаемое значение: "1997-07-16T19:20:30" должно быть привязано к dateTimePicker.

Кто-нибудь может мне с этим помочь?

Спасибо.


person user2439903    schedule 18.04.2014    source источник
comment
Спасибо за ответ. Как мне отформатировать дату, которая хранится в наблюдаемом? предположим, я хочу сохранить дату и время в наблюдаемом формате с форматом = гггг-ММ-дд ЧЧ: мм. Как это сделать?   -  person user2439903    schedule 18.04.2014


Ответы (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.

Чтобы иметь выбранную дату в отформатированном виде в наблюдаемом, вам нужно иметь отдельный наблюдаемый, потому что свойство 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.

person nemesv    schedule 18.04.2014