Как рассчитать количество недель от даты начала и окончания периода? - PullRequest
0 голосов
/ 27 мая 2020

основная идея состоит в том, чтобы получить номер недели между двумя датами (от периода даты начала до даты окончания)! Примерно так: если период с 01.05.2020 по 31.05.2020 и в сборщике данных я выберу 08.05.2020 результат будет 2, вторая неделя.

может кто-нибудь помочь с этим, не могу понять самостоятельно, спасибо!

вот JS строка кода выбора даты с периодом настройки с 01-05-2020 до 31- 05-2020, как вывести эхом из этого 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>

Ответы [ 2 ]

0 голосов
/ 31 мая 2020

Спасибо, нашел решение своей проблемы. Вот оно, может кому понадобилось ..

<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

0 голосов
/ 27 мая 2020

В соответствии с вашей основной идеей вы можете использовать библиотеку 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);

Или вы можете попробовать этот ответ, если вам больше подходит Получение текущей недели текущего месяца

...