我有两个字符串,如
var x = "22:10";
var y = "23:15";
如何使用javascript计算x进入y的剩余时间?
在这种情况下将是
var final = "01:05"
谢谢!
答案 0 :(得分:4)
var x = "22:10";
var y = "23:15";
function createDate(v) {
var date = new Date(),
va = v.split(':');
date.setHours(va[0]);
date.setMinutes(va[1]);
return date;
}
function getDiff(x, y) {
var date1 = createDate(x),
date2 = createDate(y);
var result = new Date();
result.setTime(date2.getTime() - date1.getTime());
var hours = result.getUTCHours().toString(),
minutes = result.getUTCMinutes().toString();
if (hours.length == 1) {
hours = '0' + hours;
}
if (minutes.length == 1) {
minutes = '0' + minutes;
}
return hours + ':' + minutes;
}
var diff = getDiff(x, y);
alert(diff);
答案 1 :(得分:1)
这是代码!
var x = "22:10";
var y = "23:15";
var xTotal = parseInt(x.split(':')[0] * 60) + parseInt(x.split(':')[1]);
var yTotal = parseInt(y.split(':')[0] * 60) + parseInt(y.split(':')[1]);
var total = yTotal - xTotal;
var minutes = Math.floor(total / 60);
var seconds = total - minutes * 60;
if(seconds.toString().length == 1)
{
seconds = seconds.toString();
seconds = '0' + seconds;
}
var final = minutes.toString() + ':' + seconds.toString();
console.log(final);
记录1:05(如您所见,也可以使用分钟)。
我很高兴你问,本。那么,它转换结肠周围的第一和第二部分以秒(分钟* 40),当然parseInt
,因为他们的字符串!不管怎么说,现在划分的是数字的圆形状态(家中程序员Math.floor()
) 60 以获得分钟数。你知道它的作用吗,本?
(Ben:不,但我希望它按照我的想法行事。)
我很高兴你这么说,本!好了,这里就是它的然后:的它实际上的需要是秒总数和减去它通过分什么样的数量* 60,和它现在做了吗?好吧,我会告诉你的,本!它实际上将它转换为字符串!分钟,冒号,然后秒!那有多酷?
(Ben:太好了,我们会联系。下一个?)
It's right over here, Ben! (which alerts instead of logs)
......谁是Ben ???
答案 2 :(得分:1)
您可以使用
function padding(str, len, char) {
return (Array(len).join(char)+str).substr(-len);
}
var x = "22:10",
y = "23:15",
day = "Sun Jan 05 2014 ", // or whatever
final = new Date(new Date(day+y)-new Date(day+x));
final = padding(final.getUTCHours(), 2, 0) + ':' + padding(final.getUTCMinutes(), 2, 0);