Javascript - 找到两个MM-dd-yyyy HH:mm:ss格式化日期之间的秒数?

时间:2016-01-17 22:54:00

标签: javascript date

我正在尝试使用两个MM-dd-yyyy HH:mm:ss格式化日期来查找它们之间的秒数。我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

使用Date.parse(...)解析日期以创建Date对象。

在创建的对象上使用.valueOf(),您将获得此日期的纪元(自1970年1月1日以来的毫秒数)。

对两个日期执行此操作并减去数字。差异是日期之间的时间(以毫秒为单位)。其余的应该清楚:)

修改

在评论中讨论后,这里是对Date对象更有效的引用: http://www.ecma-international.org/ecma-262/6.0/index.html#sec-date-constructor

答案 1 :(得分:0)

您永远不应该使用Date构造函数或Date.parse(执行相同的操作)来解析日期字符串,始终手动解析字符串。库可以提供帮助,但对于特定格式,解析函数非常简单。

格式MM-dd-yyyy HH:mm:ss不是指定为ES5或更高版本支持的格式,因此它将回退到依赖于实现的启发式算法。某些浏览器可能会将其解析为本地或UTC,有些浏览器可能允许超出范围值而其他浏览器则不允许。有些人可能根本无法解析它。

下面是一个简单的解析函数(没有验证值)。

添加验证需要更多代码,但如果您确信所提供的数据是好的,则不需要它。

要查找两个日期之间的秒数差异,只需从另一个日期中减去一个(以毫秒为单位),然后除以1,000。



function parseMDYhms(s) {
  var b = s.split(/\D/);
  return new Date(b[2], b[0]-1, b[1], b[3], b[4], b[5]);
}

var d0 = parseMDYhms('01-18-2015 12:52:13');
var d1 = parseMDYhms('01-19-2015 15:23:21');

var diffSeconds = (d1 - d0) / 1000;

document.write('Difference: ' + diffSeconds + ' seconds');