Javascript 日期与今天的差异

Javascript 日期与今天的差异,javascript,datetime,Javascript,Datetime,我想计算给定日期范围与今天的日期范围和给定结束日期之间的差值。最终的结果应该是在第一步:3400小时中有63%的时间已经用掉了。好的,所以我试着做以下的事情: //A_diffference between given dates var t1 = new Date(2015, 1, 13, 13, 20, 0, 0); var t2 = new Date(2015, 2, 27, 13, 20, 0, 0); var dif = t2.getTime() - t1.getTime(); var

我想计算给定日期范围与今天的日期范围和给定结束日期之间的差值。最终的结果应该是在第一步:3400小时中有63%的时间已经用掉了。好的,所以我试着做以下的事情:

//A_diffference between given dates
var t1 = new Date(2015, 1, 13, 13, 20, 0, 0);
var t2 = new Date(2015, 2, 27, 13, 20, 0, 0);
var dif = t2.getTime() - t1.getTime();
var gesamt = Math.abs(dif / 3600000); 
    //B_Difference between today and given date
var jetzt = new Date();
var dif2 = t2.getTime() - jetzt.getTime();
var noch = Math.abs(dif2 / 3600000); 
//C_Difference between the 2
    var bereits = gesamt - noch;
var prozent = (bereits/gesamt)*100;
但我的B区肯定有问题,因为我总是从那里得到更多的时间,那么它应该是真的

有人能告诉我是什么吗?也许能提示我如何使这东西更优雅一点

由于我希望稍后使用计算出的百分比ag作为标记元素的宽度,我希望定期调用该查询,从而更新元素的宽度,我会这样做:

proz=prozent+"%"; .ready(function(){$(".foo").css({width:"proz"})});
是这样吗?谢谢

为什么不使用来操纵日期?我对你具体需要做什么有点困惑。但有了瞬间,你可以做如下事情:

moment().add(7, 'days').subtract(1, 'months').year(2009).hours(0).minutes(0).seconds(0);

如果您想要在Javascript中进行健全的日期时间管理,您最终可能会解决

var t1=力矩('2015-01-13T13:20Z');
var t2=力矩('2015-02-27T13:20Z');
var差异=t2.diff(t1,‘天’);
var d=document.createElement(“span”);
d、 appendChild(document.createTextNode('start:'+t1.format(“DD-MMMM-YYYY”)+';);
d、 appendChild(document.createTextNode('end:'+t2.format(“DD-MMMM-YYYY”)+';);
d、 appendChild(document.createTextNode('difference:'+difference+'days');
文件.正文.附件(d)
作为起始日期的参考,构造函数的起始日期为0到11

月份

表示月份的整数值,1月从0开始,12月从11开始

因此,在您的示例中,
t1
将导致
2月13日
t2
3月27日


如果您与
t2-now
不同,即
1月17日
,那么它将比
t2-t1
的结果多出一个小时,我想您需要这样的函数:

function spentTime(startDate, endDate){
   var sd = startDate.getTime(), sf = Math.abs(new Date().getTime()-sd);
   return {percent:(Math.abs(sd-endDate.getTime())/sf)*100, total_hours:sf/3600000};
}

var spent = spentTime(new Date(2015, 1, 13, 13, 20, 0, 0), new Date(2015, 2, 27, 13, 20, 0, 0));
console.log(spent.percent);
console.log(spent.total_hours);

我不明白bereits=gesamt-noch应该代表什么。你为什么要减去差异呢?
t1
t2
应该是什么日期?今天应该在这个范围内吗?不是,因为这些日期是2月13日和3月27日。Javascript月份从0=1月开始您认为t1和t2是什么日期?