gpt4 book ai didi

javascript - jQuery Datepicker 天数

转载 作者:行者123 更新时间:2023-11-29 16:27:11 27 4
gpt4 key购买 nike

我有两个 jQuery UI 日期选择器,当它们都选择了日期时,我希望这些日期之间的差异显示在单独的 input[type="text"] 一旦选择了第二个日期。

此外,理想情况下,我希望我的计数减去任何周末的天数,只计算周一至周五的天数。

我的(相关)代码如下:

JS:

$('#firstday, #lastday').datepicker({
dateFormat: 'dd/mm/yy'
});

XHTML:

<label for="firstday">First Day of Leave</label>
<input type="text" name="firstday" id="firstday" />

<label for="lastday">Last Day of Leave</label>
<input type="text" name="lastday" id="lastday" />

<label for="totaldays">Total Days</label>
<input type="text" name="totaldays" id="totaldays" />

大量的搜索让我找到了许多不同的解决方案,但没有一个是我可以按照自己的意愿开始工作的,所以任何想法都将不胜感激。

最佳答案

像这样的东西应该可以工作:

$("#firstday, #lastday").datepicker({
onSelect: function (){

// Date will give time difference in miliseconds, that is why we divide with 1000*60*60*24

var firstday = new Date($("#firstday").val().split("/").reverse().join(","));
var lastday = new Date($("#lastday").val().split("/").reverse().join(",");
$("#totaldays").val((lastday - firstday) / 86400000);
}
});

在节点控制台中它给出:

> x = new Date("18/5/2010".split("/").reverse().join(","))
Mon, 17 May 2010 22:00:00 GMT
> y = new Date("18/5/2015".split("/").reverse().join(","))
Sun, 17 May 2015 22:00:00 GMT
> x-y
-157766400000
> y-x
157766400000
> (y-x)/86400000
1826

-- 编辑--

当您有开始日期和结束日期时,可以使用 getDay() 轻松计算出周末的天数,它返回 0 表示星期日,1 表示星期一 ... 6 表示星期六。

您也可以将 .getMonth() 和 .getDate() 与少数其他{}条件结合使用以用于假期。

var weekend_count = 0;
for (i = firstday.valueOf(); i <= lastday.valueOf(); i+= 86400000){
var temp = new Date(i);
if (temp.getDay() == 0 || temp.getDay() == 6) {
weekend_count++;
}
}

最后你就做了

$("#totaldays").val( (lastday - firstday) / 86400000 - weekend_count);

只是在最后做一个笔记。您可能应该将这段代码(尽可能多的)外推到一个单独的函数中,以使您的代码更易于维护,以防您在其他地方需要相同的函数。

祝你好运。

关于javascript - jQuery Datepicker 天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com