JavaScript - 两个时间字符串之间的差异

Ila*_*riM 6 javascript time compare date difference

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

以下是日期时间字符串:

var a = ("2017-05-02T10:45");
var b = ("2017-05-02T12:15");
Run Code Online (Sandbox Code Playgroud)

我已经从它们中切出日期,所以我只需要时间(形成:HH:mm)。

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

// now = 10:45
// then = 12:15
Run Code Online (Sandbox Code Playgroud)

有什么办法可以得到这两次之间的差异吗?

结果应如下所示:

1 hour 30 minutes
Run Code Online (Sandbox Code Playgroud)

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

2op*_*pin 5

使用 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);
Run Code Online (Sandbox Code Playgroud)


mik*_*ika 4

这应该可以帮助您开始:

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());
Run Code Online (Sandbox Code Playgroud)

或使用momentjs,因为: 1. 它经过充分测试并跟踪错误。2. 从头开始​​编码是一种有趣的学习体验,但如果您在公司环境中,从头开始编码会浪费时间(从而浪费金钱)。