如果我有两次像
这样的字符串14:10 and 19:02
如何转换为Date对象以获得减去的值
var res = date1 - date2;
我尝试用
解析var date = new Date.parseExact(myDateVar, "HH:mm");
我正在
未捕获的TypeError:Date.parseExact不是构造函数
答案 0 :(得分:1)
我认为新的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');
你会得到同样的结果。