如何在javascript中反序列化JSON时间跨度

时间:2015-11-24 12:04:39

标签: javascript json timespan

我创建了一个返回时间跨度的C#REST WCF服务。在客户端,我获得了像PT14H,PT16H等JSON序列化返回值。如何将此字符串转换为实际时间跨度?

3 个答案:

答案 0 :(得分:3)

JavaScript没有TimeSpan数据类型,但您可以使用moment.js.

Moment.js支持ISO 8601个时间间隔(就像.NET TimeSpan),它们被称为 durations

它包括基本的算术运算:如果你减去你获得持续时间的日期,如果你添加日期和持续时间你会得到日期,如果你加上或减去持续时间你会得到.NET DateTime and TimeSpan的持续时间。

实施例:



var now= moment();
// 7 hour time span
var timeSpan = moment.duration('PT7H');

// addition
alert(now.add(timeSpan).format());

<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment.min.js"></script>
&#13;
&#13;
&#13; (Adapted from rnd's answer, thanks)

答案 1 :(得分:1)

据我所知不支持。

使用this library

答案 2 :(得分:1)

在我的情况下,JSON结果看起来像PT14H代表时间14:00:00而PT9H25M25S代表时间9:25:25。这意味着PT代表时间部分,H代表小时部分,M代表分钟部分,S代表秒部分。