5

私は配列を持っています.1つのキーはcreateDateです。配列の foreach ループで、ノックアウト テキスト バインディングを介して createDate 値を取得します。

<span data-bind="text: createDate"></span>

値は次のように表示されます: '2013-04-24T16:29:00.38' ... これがデータベースに存在する方法です。日付のみを表示するように (バインディング内で) フォーマットする方法はありますか? または、これを実現するには、データベースにのみ日付として保存する必要がありますか?

たとえば、以下を使用して小数点以下 2 桁を設定できます。

<span data-bind="text: price.ToFixed(2)"></span>

「2013-04-24」のみを表示するこのような単純なものはありますか?

前もって感謝します !

4

3 に答える 3

18

私にとって重要なのはmoment.jsです

次のような簡単なことを行うことができます。

<span data-bind="text: moment(createDate()).format('MM/DD/YYYY')"></span>

または、この人のようにバインディング ヘルパーを作成することもできます。つまり、次のようになります。

<span data-bind="dateString: createDate, datePattern: 'MM/DD/YYYY'"></span>
于 2013-05-08T00:30:23.613 に答える
0

時間のみを表示するのに役立ちました:

 <td data-bind="text:moment(OpeningTime()).format('h:mm:ss a')"></td>
于 2016-02-23T10:40:02.580 に答える
-2

この JavaScript を追加します。

String.prototype.Format = function (fmt) {
var myDate = this;
var o = {
    "M+": myDate.getMonth() + 1,
    "d+": myDate.getDate(),
    "h+": myDate.getHours(),
    "m+": myDate.getMinutes(),
    "s+": myDate.getSeconds(),
    "q+": Math.floor((myDate.getMonth() + 3) / 3),
    "S": myDate.getMilliseconds()
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (myDate.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;

};

次に、次のように使用できます。

<span data-bind="text: createDate().Format('MM/DD/YYYY')"></span>
于 2013-05-08T01:34:39.387 に答える