2014-02-13 3 views
1

У меня возникли проблемы форматирования поля даты из нокаута модели:формат даты в нокаута Еогеасп заявление

<table class="signatures"> 
    <tbody data-bind="foreach: $root.signatures()"> 
     <tr> 
      <td><span data-bind="text: DateSigned"></span></td> 
     </tr> 
    </tbody> 
</table> 

Это результат, который я получаю:

/Date(-62135571600000)/ 
+0

AFAIK, нет ничего "встроенный". Возможно, вам придется использовать стороннюю библиотеку Javascrript, например ** moment.js **. См. Здесь пример: http://stackoverflow.com/a/17456175/325521 – Shiva

ответ

3

Что вы имеете это дата Javascript, которая составляет всего миллисекунды с 1 января 1970 года. Вам необходимо создать форматтер, который будет форматировать дату javascript во что-то более читаемое пользователю.

В зависимости, если вы используете UTC датам вам нужно будет проверить локальный пользователя перед форматированием или просто сообщить пользователю, в каком часовом поясе ваши даты в.

Вот MDN article всех функций, которые Javascript по сути, имеет то, что вы можете выполнять на своем объекте даты.

Итак, я бы создал функцию даты, которая форматирует дату для вас.

function formatDate(odate) { 
    var date = ko.util.unwrapObservable(odate); 
    var year = date.getYear(); 
    var month = date.getMonth() + 1; 
    var day = date.getDate(); 
    return year + '/' + month + '/' + day; 
} 

то внутри вашей точки зрения вы можете:

<table class="signatures"> 
    <tbody data-bind="foreach: $root.signatures()"> 
     <tr> 
      <td><span data-bind="text: formatDate(DateSigned)"></span></td> 
     </tr> 
    </tbody> 
</table> 
Смежные вопросы