在Js中将HH:mm转换为Date对象

时间:2017-02-08 17:17:44

标签: javascript jquery

如果我有两次像

这样的字符串
14:10 and 19:02

如何转换为Date对象以获得减去的值

var res = date1 - date2;

我尝试用

解析
var date = new Date.parseExact(myDateVar, "HH:mm");

我正在

  

未捕获的TypeError:Date.parseExact不是构造函数

5 个答案:

答案 0 :(得分:1)

Date.parse in javascript

我认为新的Date.parseExact在C#中,所以javascript中没有构造函数;

答案 1 :(得分:0)

首先转换为:14:10 and 19:02到日期

var
    pieces = "14:02".split(':')
    minute, second;

if(pieces.length === 2) {
    minute = parseInt(pieces[0], 10);
    second = parseInt(pieces[1], 10);
}

并使用此:

var date1 = new Date("7/13/2010");
var date2 = new Date("12/15/2010");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
alert(diffDays);

答案 2 :(得分:0)

脱离我的头顶:

var a="14:10";
var b="19:02";

var date1=new Date("01-01-2017 " + a + ":00");
var date2=new Date("01-01-2017 " + b + ":00");
//diff will be the number of milliseconds between the two times.
var diff = Math.abs(date1 - date2);
alert(diff);

当然这要求你在相同的24小时内完成它。

答案 3 :(得分:0)

我不建议弄乱日期和所有奇怪的事情(时区,糟糕的API,夏令时,闰秒......)。例如,如果您想要计算def whereWorks(versions, works): middle = len(versions)/2 good = works(versions[middle]) if middle < 2: return good ? 0 : 1 if works(middle): return whereWorks(versions[0:middle]) else return whereWorks(versions[middle:])+middle 并且您的脚本恰好在DST切换发生的那天运行,那么如果您不小心,可能会得到"3:05" - "2:00"之类的结果。

幸运的是,用一段时间解析一个字符串并将其转换为一个更容易用数学运算的单元很容易:

0:05

您可以通过计算然后减去相应的// Error checking omitted for brevity var text = "23:59"; var tmp = String(text).match(/^(\d+):(\d+)$/); var minutes = parseInt(tmp[1], 10); var seconds = parseInt(tmp[2], 10); var totalSeconds = 60*minutes + seconds; console.log(text, minutes, seconds, totalSeconds); 来计算两次之间的差异。如果将它包装在自定义函数或对象中,则可以重复使用。

答案 4 :(得分:0)

您有几种选择:

第一个选项:

var date1 = new Date(null, null, null, 14, 10);
var date2 = new Date(null, null, null, 19, 02);

您将获得真实的约会对象。

秒选项:

var date1 = new Date('01/01/1970 14:10');
var date2 = new Date('01/01/1970 19:02');

你会得到同样的结果。