有人可以帮我解决这个PHP时间戳谜语吗?
我试图根据两个给定的日期找到工作日的数量。
我得到一个字符串日期,例如开始日期:01 / 10 / 2019(2019年10月1日)并将其分解为数组= > $s
数组$s设置如下:
Array ( [0] => 01 [1] => 10 [2] => 2019 )
然后我从中制作了一个Unix时间戳:
date('U', mktime(0, 0, 0, $s[1], $s[0], $s[2]));
由于上述日期转换,我得到了1569884400。
然后我使用循环来运行它,所以我可以根据2个给定的日期找到周天数。
这是该循环的结果,正如您所看到的,由于某种原因,10月27日重复。
只是为了澄清这个PHP页面的顶部,我已经设置了时区
date_default_timezone_set('Europe/London');
这是以下结果背后的代码
基于最后日期的总$total天数(在本例中为 2019 年 10 月 31 日,即:31 天)
2019年10月应该有23个工作日,因为我得到2x 27th十月,我将只得到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 x86400 添加到 1569884400 ==> 1572390000 新日期为 2019-10-29
30 x86400 添加到 1569884400 ==> 1572476400 新日期为 2019-10-30
Cats萌萌
拉丁的传说
婷婷同学_
人到中年有点甜