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

JOS*_*MAS 3 javascript json timespan

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

The*_*One 8

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());
Run Code Online (Sandbox Code Playgroud)
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
(改编自 rnd 的回答,谢谢)


Ben*_*Ben 1

据我所知,本机不支持。

使用矩等持续时间库。