在Javascript中将ISO 8601字符串转换为当前TimeZone DateTime对象

时间:2015-06-11 02:24:32

标签: javascript date datetime timezone momentjs

我正在编写一个NodeJS应用,根据最近上传的YouTube视频发送通知。

我从youtube获得2015-06-10T20:18:45.000Z的ISO 8601格式字符串。该字符串是视频上传的时间。

如何获取该字符串,将其转换为我当地时区的Date对象,得到它的时间。然后看看从现在开始的视频到底有多久?

我基本上需要知道从现在开始的视频到底有多久。如果有一种不同于我上面描述的那种方式,那也没关系。

我尝试了这个但它不起作用 - 因为我相信时区差异

var temp_one = new Date('2015-06-10T20:18:45.000Z');
var temp_two = new Date();
var difference = temp_two - temp_one

1 个答案:

答案 0 :(得分:0)

您所描述的内容确实有用 - 只要浏览器支持解析您提供的ISO8601格式化字符串。较旧的浏览器(例如IE8)不直接支持此功能。

difference变量将返回自您提供的日期以来经过的毫秒数。如果你想在其他单位中使用它,你可以相应地划分数字:

var seconds = difference / 1000;
var minutes = difference / 60000;
var hours = difference / 3600000;

如果您想要更精细的内容,可以使用moment.js

例如:

moment("2015-06-10T20:18:45.000Z").fromNow()  // "7 hours ago"