我有两组有效的代码。需要帮助将它们合二为一。
这段代码让我知道两个日期之间的差异。完美运行:
function test(){
var date1 = new Date(txtbox_1.value);
var date2 = new Date(txtbox_2.value);
var diff = (date2 - date1)/1000;
var diff = Math.abs(Math.floor(diff));
var days = Math.floor(diff/(24*60*60));
var leftSec = diff - days * 24*60*60;
var hrs = Math.floor(leftSec/(60*60));
var leftSec = leftSec - hrs * 60*60;
var min = Math.floor(leftSec/(60));
var leftSec = leftSec - min * 60;
txtbox_3.value = days + "." + hrs; }
@cyberfly 下面的代码似乎有排除 sat 和 sun 的答案,这是我需要的。 来源。但是,它在 jquery 中,上面的代码是在 JS 中。因此,需要帮助结合,因为我缺乏这方面的知识:(
<script type="text/javascript">
$("#startdate, #enddate").change(function() {
var d1 = $("#startdate").val();
var d2 = $("#enddate").val();
var minutes = 1000*60;
var hours = minutes*60;
var day = hours*24;
var startdate1 = getDateFromFormat(d1, "d-m-y");
var enddate1 = getDateFromFormat(d2, "d-m-y");
var days = calcBusinessDays(new Date(startdate1),new Date(enddate1));
if(days>0)
{ $("#noofdays").val(days);}
else
{ $("#noofdays").val(0);}
});
</script>
编辑 尝试合并代码。这是我的样本。获取 _对象预期错误_。
function test(){
var date1 = new Date(startdate.value);
var date2 = new Date(enddate.value);
var diff = (date2 - date1)/1000;
var diff = Math.abs(Math.floor(diff));
var days = Math.floor(diff/(24*60*60));
var leftSec = diff - days * 24*60*60;
var hrs = Math.floor(leftSec/(60*60));
var leftSec = leftSec - hrs * 60*60;
var min = Math.floor(leftSec/(60));
var leftSec = leftSec - min * 60;
var startdate1 = getDateFromFormat(startdate, "dd/mm/yyyy hh:mm");
var enddate1 = getDateFromFormat(enddate, "dd/mm/yyyy hh:mm");
days = calcBusinessDays(new Date(startdate1),new Date(enddate1));
noofdays.value = days + "." + hrs; }
start: <input type="text" id="startdate" name="startdate" value="02/03/2015 00:00">
end: <input type="text" id="enddate" name="enddate" value="02/03/2015 00:01">
<input type="text" id="noofdays" name="noofdays" value="">
原文由 marv 发布,翻译遵循 CC BY-SA 4.0 许可协议
在确定两个日期之间的天数时,需要做出很多关于什么是一天的决定。例如,2 月 1 日至 2 月 2 日期间通常为 1 天,因此 2 月 1 日至 2 月 1 日为零天。
当增加仅计算工作日的复杂性时,事情会变得更加困难。例如,2015 年 2 月 2 日星期一至 2 月 6 日星期五是 4 个工作日(星期一至星期二是 1 天,星期一至星期三是 2 日,依此类推),但是“星期一至星期五”这一表达通常被视为 5 个工作日,持续时间 Mon 2 2 月至 7 日星期六也应为 4 个工作日,但星期日至星期六应为 5 个工作日。
所以这是我的算法:
最后的步进部分可能可以用其他算法代替,但它永远不会循环超过 6 天,因此它是解决周数不均问题的简单且相当有效的解决方案。
上述的一些后果:
这是代码:
我不知道它与 jfriend00 的答案或您引用的代码相比如何,如果您希望该期间包含在内,如果开始或结束日期是工作日,只需添加一个。