讨论数量:
CarbonPeriod::macro('countWeekdays', static function () {
return self::this()->filter('isWeekday')->count();
});
echo CarbonPeriod::create('2017-11-01', '2017-11-30')->countWeekdays(); // 22
echo CarbonPeriod::create('2017-12-01', '2017-12-31')->countWeekdays(); // 21
Carbon 是最好的选择。
节假日是分地区的 内地的节日虽然可以提前确定,但是调休得看每年公布的具体日期,你只能在年末手动处理来年的节假日调休来确定你说的工作日天数了 跨年的时间段就不好处理了
如果没有第三方接口的情况下,,,
是否,,,,可以搞一个表,存储 日期 - [放假 or 调休] 这样的数据,,,然后先用 Carbon 那个获取去掉周六日的天数,然后在数据库中查出这个区间里,哪些些日子是放假,哪些周六日又上班,,,加减一下
$beginDate
$endDate
$holidays = []
$count
for ([$beginDate -> $endDate] as $date) {
if ($date is not weekDay) {
continue;
}
if ($date in $holidays) {
continue;
}
$count++
}
不知道是什么商业逻辑,国家规定的节假日 还有 『部分公民放假的节日及纪念日』:
部分公民放假的节日及纪念日:妇女节(3月8日),妇女放假半天;青年节(5月4日),14岁以上的青年放假半天;儿童节(6月1日),不满14周岁的少年儿童放假1天;中国人民解放军建军纪念日(8月1日),现役军人放假半天。少数民族习惯的节日由各少数民族聚居地区的地方人民政府按照各该民族习惯,规定放假日期。
推荐文章: