如何计算开始和结束日期周期的周数?



主要思想是获取两个日期之间的周数(从开始日期和结束日期的时间段(! 像这样:如果时间段是 01-05-2020 到 31-05-2020,并且在数据选择器中,我 chouse 08-05-2020 结果将是 2,则第二周。

有人可以帮忙,我自己想不通, 谢谢!

这是设置周期为 01-05-2020至 31-05-2020 的 JS 日期选择器代码行,如何从此 JS 代码中回显出周数以供将来使用 PHP 或输入值?

.js

<!-- js -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js' type='text/javascript'></script>
<!-- Datepicker -->
<link href='https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css' rel='stylesheet' type='text/css'>
<script src='https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js' type='text/javascript'></script>

<script type="text/javascript">
$(document).ready(function(){
$('#datepicker').datepicker({
format: "dd/mm/yyyy",
startDate: new Date('2020-5-1'),
endDate: new Date('2020-5-31')
});
});
</script>

.html

<div class="form-group">
<label for="formGroupExampleInput">Date of sale</label>
<input type="text" name="dos" value="<?php echo $doc; ?>" class="form-control" id='datepicker' id="formGroupExampleInput">
</div>

根据您的主要思想,您可以使用 date-fns 库来获取以周为单位的日期之间的差异。

// import date-fns library
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/2.0.0-alpha0/date_fns.min.js"></script>

然后,您可以:

let diffCalendarWeeks = dateFns.differenceInCalendarWeeks(new Date(2020,4,31), new Date(2020,4,1));
let diffWeeks = dateFns.differenceInWeeks(new Date(2020,4,31), new Date(2020,4,1))
console.log(diffCalendarWeeks); //5
console.log(diffWeeks); // 4

请参阅 date-fns 文档 https://date-fns.org/v2.0.0-alpha.1/docs/differenceInCalendarWeeks

如果您想知道指定月份内的周数,您可以查看所选日期和第一个日期之间的差异。

let selectedDate = new Date(2020, 4, 15);
let startOfMonth = dateFns.startOfMonth(new Date());
var selectedWeek = dateFns.differenceInWeeks(selectedDate, startOfMonth) + 1;
console.log(selectedWeek);

或者,如果更适合您,您可以尝试此答案 获取当月的当前周

谢谢,我找到了解决问题的方法。 在这里,也许有人需要..

<script>
function diff_weeks(dt2, dt1) 
{
var diff =(dt2.getTime() - dt1.getTime()) / 1000;
diff /= (60 * 60 * 24 * 7);
return Math.abs(Math.round(diff));
}
dt1 = new Date(2014,10,2);
dt2 = new Date(2014,10,11);
console.log(diff_weeks(dt1, dt2));
dt1 = new Date("June 13, 2014 08:11:00");
dt2 = new Date("October 19, 2014 11:13:00");
console.log(diff_weeks(dt1, dt2));
<script> 

.lnk。 https://www.w3resource.com/javascript-exercises/javascript-date-exercise-47.php

最新更新