Breeze.js和TimeSpan ISO文字

时间:2013-07-22 21:10:32

标签: c# knockout.js breeze timespan momentjs

我的C#服务器端模型具有TimeSpan属性(用于存储一天中的某个时间),Breeze检索时将其作为timepans的ISO文字返回。因此,9小时(09:00)的TimeSpan将返回为“PT9H”。将此转换为更友好的09:00字符串(将受到UI时间戳小​​部件限制)的最佳方式是什么?

我正在使用Knockout绑定到我的HTML元素。

1 个答案:

答案 0 :(得分:5)

我发现处理ISO 8601持续时间的最佳解决方案是使用moment.js库的moment-isoduration插件。回复:https://github.com/dordille/moment-isoduration

使用您的示例:

var duration = moment.duration.fromIsoduration('PT9H');

返回具有_milliseconds属性的duration对象,因此调用

moment.utc(duration._milliseconds).format('hh:mm')

应该返回“09:00”