在Yii2中,要计算日期之间的天数不包括周末和节假日,可以按照以下步骤进行操作:
$holidays = [
'2022-01-01', // 元旦
'2022-02-12', // 春节
'2022-04-04', // 清明节
// 其他节假日...
];
use yii\helpers\DateTime;
function getWorkingDays($startDate, $endDate, $holidays)
{
$start = new DateTime($startDate);
$end = new DateTime($endDate);
$days = 0;
while ($start <= $end) {
$dayOfWeek = $start->format('N'); // 获取当前日期的星期几(1-7,1表示星期一)
$isHoliday = in_array($start->format('Y-m-d'), $holidays); // 检查当前日期是否是节假日
if ($dayOfWeek < 6 && !$isHoliday) { // 如果是工作日且不是节假日
$days++;
}
$start->modify('+1 day'); // 增加一天
}
return $days;
}
$startDate = '2022-01-01';
$endDate = '2022-01-10';
$workingDays = getWorkingDays($startDate, $endDate, $holidays);
echo "工作日天数:{$workingDays}天";
以上代码将计算从2022年1月1日到2022年1月10日之间的工作日天数,并输出结果。
请注意,以上代码仅提供了一个基本的示例,实际应用中可能需要根据具体需求进行适当的修改和扩展。另外,关于Yii2的更多信息和使用方法,可以参考腾讯云的Yii2产品介绍页面:Yii2产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云