php - 获取除星期日之外的两个日期之间的日期
问题描述
我有 2 个日期,除了星期天,我需要获取这两个日期之间的日期。
这是我到目前为止创建的代码。
<?php
$service_start_date = '2021-04-15';
$service_end_date = '2021-05-14';
$service_start_date = new DateTime($service_start_date);
$service_end_date = new DateTime($service_end_date);
$daterange = new DatePeriod($service_start_date, new DateInterval('P1D'), $service_end_date);
echo $daterange;
foreach($daterange as $date){
if(date("w", strtotime( $date)) != 0){
echo $date;
}
echo $date;
}
?>
这是我得到的错误:
PHP 可恢复的致命错误:无法将类 DatePeriod 的对象转换为字符串
我究竟做错了什么?
解决方案
您使用 DateTime 和 format 或使用 date 和 strtotime。混合不好。DatePeriod 不是必需的。日期时间的解决方案:
$service_start_date = '2021-04-15';
$service_end_date = '2021-05-14';
$endDate = date_create($service_end_date);
$startDate = date_create($service_start_date);
while($startDate < $endDate){
if($startDate->format('w') != 0){
echo $startDate->format('Y-m-d').'<br>';
}
$startDate->modify('+1 day');
}
推荐阅读
- mysql - 获取 MySQL 中的上一条记录,按值排序,而不是按索引(MySQL 5.6.40)
- android - RecyclerView DynamicAdapter - 按以下方式分组的列表
- dart - ExpansionTile 下 Flutter ListTile
- android - 是否可以在 Worker 中使用 WebView?
- javascript - express-validator,validationErrors 是一个空对象
- c# - Swagger 没有生成 swagger.json
- ruby-on-rails - 如何在rails活动管理索引页面的列表项中显示模型的多个属性项?
- xml - 如何编写 XSLT 以从元素中取出元素?
- javascript - 在Javascript中按下某些按钮时如何使文本框出现?
- php - 数据库中的所有内容都会更新,而不是单行