JavaScript - 两个时间字符串之间的差异[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript - 两个时间字符串之间的差异[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我需要比较两个不同的日期时间字符串(形成:YYYY-MM-DD'T'HH:mm)。

以下是日期时间字符串:

var a = ("2017-05-02T10:45");
var b = ("2017-05-02T12:15");

我把日期切成了它们所以我只需要时间(形成:HH:mm)。

var now = a.slice(11, 16);
var then = b.slice(11, 16);

// now = 10:45
// then = 12:15

我有什么方法可以解决这两次之间的差异吗?

结果应如下所示:

1 hour 30 minutes

此外,如果日期不同,是否有任何简单的解决方案来获得日期差异?

答案

这应该让你开始:

d1 = new Date(Date.parse("2017-05-02T10:45"));
d2 = new Date(Date.parse("2017-05-02T12:15"));

var getDuration = function(d1, d2) {
    d3 = new Date(d2 - d1);
    d0 = new Date(0);

    return {
        getHours: function(){
            return d3.getHours() - d0.getHours();
        },
        getMinutes: function(){
            return d3.getMinutes() - d0.getMinutes();
        },
        getMilliseconds: function() {
            return d3.getMilliseconds() - d0.getMilliseconds();
        },
        toString: function(){
            return this.getHours() + ":" +
                   this.getMinutes() + ":" + 
                   this.getMilliseconds();
        },
    };
}

diff = getDuration(d1, d2);

console.log(diff.toString());
另一答案

使用javascript日期:

var a = ("2017-05-02T10:45");
var b = ("2017-05-02T12:15");
var milliseconds = ((new Date(a)) - (new Date(b)));

var minutes = milliseconds / (60000);
另一答案

我有一个lib来使这个简单:

维基:https://github.com/jiangbai333/Common-tools/wiki/format代码:https://github.com/jiangbai333/Common-tools/blob/dev/string/string.js

在你的文件中包含string.js,然后:

var temp = "short-stamp".format(+new Date("2017-05-02T12:15")) - "short-stamp".format(+new Date("2017-05-02T10:45"));

console.log(parseInt(temp / 3600), "hour", parseInt(temp % 3600 / 60), "minutes")

以上是关于JavaScript - 两个时间字符串之间的差异[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用javascript查找两个日期之间的天数差异

JavaScript 中两个日期的年、月、日之间的差异

获取 JavaScript 中两个日期之间的差异? [复制]

javascript 两个对象之间的深度差异,使用lodash

Javascript和datediff mysql中日期之间的日期差异不相等

初学者javascript中非常相似的术语之间的逻辑差异