Может кто-нибудь помочь мне решить эту загадку PHP timestamp
Я пытаюсь найти число будних дней на основе двух данных дат.
Я получаю строковую дату например, начальная дата: 01/10/2019 (1 октября 2019 г.) и разнесение ее в массив => $ s
Массив $ s установлен так:
Array ( [0] => 01 [1] => 10 [2] => 2019 )
тогда я сделал Unix отметка времени от него:
date('U', mktime(0, 0, 0, $s[1], $s[0], $s[2]));
Я получаю 1569884400 в результате преобразования даты выше.
затем я использую al oop для запуска этого и, таким образом, я могу найти количество дней недели на основе 2 данных дат.
это результат того l oop и как видите почему-то повторяется 27 октября.
Просто чтобы уточнить верх этой PHP страницы, у меня установлен часовой пояс
date_default_timezone_set('Europe/London');
Это код, показанный ниже:
всего $ total_days на основе последнего дата (в данном случае 31 октября 2019 года и ie: 31 день)
октября 2019 года должно быть 23 рабочих дня, так как я получу 2x 27 октября, я получу только 22 рабочих дня.
Что я здесь не так делаю?
$wk_days = array(1, 2, 3, 4, 5);
$days = 0;
for ($i = 0; $i < $total_days; $i++) {
$tmp = $first + ($i * 86400);
echo $i." x86400 add to ". $first . " ==> " . $tmp. " and the new date is " .date('Y-m-d',$tmp) ."<br/>";
$chk = date('w', $tmp);
if (in_array($chk, $wk_days)) {
$days++;
}
}
0 x86400 добавить к 1569884400 ==> 1569884400 и новой датой будет 2019-10-01
1 x86400 добавить к 1569884400 ==> 1569970800 и новой дате это 2019-10-02
2 x86400 добавление к 1569884400 ==> 1570057200 и новая дата 2019-10-03
3 x86400 добавление к 1569884400 ==> 1570143600 и новая дата это 2019-10-04
4 x86400 добавить к 1569884400 ==> 1570230000 и новая дата 2019-10-05
...
23 x86400 добавить к 1569884400 ==> 1571871600 с новой датой 2019-10-24
24 x86400 добавьте к 1569884400 ==> 1571958000 и новой датой 2019-10-25
25 x86400 добавьте к 1569884400 ==> 1572044400 с новой датой 2019-10-26
26 x86400 добавьте к 1569884400 ==> 1572130800 и новой датой 2019-10-27 // ***
27 x86400 добавить к 1569884400 ==> 1572217200 и новой датой будет 2019-10-27 // ***
28 x86400 добавить к 1569884400 ==> 1572303600 и новой датой будет 2019-10-28
29 х 86400 добавить к 1569884400 ==> 1572390000, и новая дата будет 2019-10-29
30 x86400, добавить к 1569884400 ==> 1572476400, а новая дата будет 2019-10-30