【问题标题】:format a date in a knockout foreach statement在淘汰赛 foreach 语句中格式化日期
【发布时间】:2014-02-14 05:38:29
【问题描述】:

我在从淘汰模型中格式化日期字段时遇到问题:

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

这是我得到的结果:

/Date(-62135571600000)/ 

【问题讨论】:

标签: knockout.js


【解决方案1】:

您所拥有的是一个 Javascript 日期,它是从 1970 年 1 月 1 日开始的毫秒数。您需要创建一个格式化程序,将 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多