【发布时间】:2020-04-21 14:29:44
【问题描述】:
我正在尝试从两个不同的时间段计算某个人的服务时间。 我一直在使用 DateDiff 脚本,该脚本非常适合在两个日期之间显示(如下):
<center>
<font face=glegoo size=4 color=#909090>
<script type="text/javascript">
var DateDiff = {
inDays: function(d1, d2) {
var t2 = d2.getTime();
var t1 = d1.getTime();
return parseInt((t2-t1)/(24*3600*1000));
},
inWeeks: function(d1, d2) {
var t2 = d2.getTime();
var t1 = d1.getTime();
return parseInt((t2-t1)/(24*3600*1000*7));
},
inMonths: function(d1, d2) {
var d1Y = d1.getFullYear();
var d2Y = d2.getFullYear();
var d1M = d1.getMonth();
var d2M = d2.getMonth();
return (d2M+12*d2Y)-(d1M+12*d1Y);
},
inYears: function(d1, d2) {
return d2.getFullYear()-d1.getFullYear();
}
}
var dString = "May, 23, 2016";
var d1 = new Date(dString);
var d2 = new Date();
document.write("Service: - "+DateDiff.inYears(d1, d2));
document.write(" Years");
</script>
</font>
</center>
但我想添加上一时期的服务时间,然后将其组合在一起,显示总年数和月数。 我曾尝试以自己的方式“加倍”脚本,但现在开始将头撞在桌子上。当月份计算超过 12 个月时,我似乎无法弄清楚如何增加一年。 这就是我要做的:
<center>
<font face=glegoo size=4 color=#909090>
<script type="text/javascript">
var DateDiff = {
inDays: function(d1, d2, d3, d4) {
var t2 = d2.getTime();
var t1 = d1.getTime();
var t4 = d4.getTime();
var t3 = d3.getTime();
return parseInt((t2-t1)/(24*3600*1000)+(t4-t3)/(24*3600*1000));
},
inWeeks: function(d1, d2, d3, d4) {
var t2 = d2.getTime();
var t1 = d1.getTime();
var t4 = d4.getTime();
var t3 = d3.getTime();
return parseInt((t2-t1)/(24*3600*1000*7)+(t4-t3)/(24*3600*1000*7));
},
inMonths: function(d1, d2, d3, d4) {
var d1Y = d1.getFullYear();
var d2Y = d2.getFullYear();
var d1M = d1.getMonth();
var d2M = d2.getMonth();
var d3Y = d3.getFullYear();
var d4Y = d4.getFullYear();
var d3M = d3.getMonth();
var d4M = d4.getMonth();
return (((d2M+12*d2Y)-(d1M+12*d1Y))+((d4M+12*d4Y)-(d3M+12*d3Y)));
},
inYears: function(d1, d2, d3, d4) {
var d1Y = d1.getFullYear();
var d2Y = d2.getFullYear();
var d3Y = d3.getFullYear();
var d4Y = d4.getFullYear();
return ((d2Y-d1Y)+(d4Y-d3Y));
}
}
var aString = "April, 24, 2010";
var bString = "May, 24, 2011";
var dString = "May, 23, 2016";
var d1 = new Date(aString);
var d2 = new Date(bString);
var d3 = new Date(dString);
var d4 = new Date();
document.write("Service: - "+DateDiff.inYears(d1, d2, d3, d4) +" Years " +DateDiff.inMonths(d1, d2, d3, d4));
document.write(" Months");
</script>
</font>
</center>
非常感谢任何帮助。
【问题讨论】:
-
<font>和<center>标签?document.write?逻辑也是错误的。一切从头开始。
标签: javascript datediff