在php中,我使用此代码计算两个日期之间的天数差异。
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
我得到了结果,但如果它们处于这些日期之间,是否有任何方法可以跳过周六和周日。
答案 0 :(得分:0)
请参阅我这样做及其正常工作 你可以试试这个。
$day = date('l',strtotime($datte));
if($day == 'Saturday' || $day == 'Sunday')
{
//SOME ACTION
}else{
//SOME ACTION
}
其中L是定义日全名。
答案 1 :(得分:0)
我创建了一个数组,其中包含当天的所有日期数字表示(0-6为sun-sat)
如果它在1-5(mon-fri)之间加入数组。
然后,数组的计数是没有星期日的天数。
<?php
$startdate = '2017-08-04';
$datetime1 = new DateTime($startdate);
$datetime2 = new DateTime('2017-08-07');
$interval = $datetime1->diff($datetime2);
$days = $interval->format('%a');
$arr =array();
for($i=0;$i<=$days;$i++){
$day = date("w Y-m-d l", strtotime($startdate) + $i*86400);
if((int)$day[0] >= 1 && (int)$day[0] <= 5 ) $arr[] = $day;
}
var_dump($arr);
echo "days excluding sat-sundays " . count($arr);
编辑添加=也计算结束日期。
编辑;有些东西与我以前的strtotime没有用,它给出了正确的结果,但周二计算为星期一
改为将其更改为$ i * 86400,并在阵列中添加更多数据以进行调试。
答案 2 :(得分:-1)
假日者周六举行,周日举行; w没有假期的距离
<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-12-13');
$interval = $datetime1->diff($datetime2);
$distance=$interval->format('%R%a');
$hoildays=($distance/7)*2;// *2 cuz saturday and sunday
$W=$distance-($distance/$hoildays);
echo $W;
?>