php - 根据天数的日期
问题描述
我想根据天数对日期进行分类,例如:每 1 个日期,每两个日期,依此类推。
<?php
$date1= strtotime('2019-09-01');
$date2= strtotime('2020-06-30');
$nbjour=($date2-$date1)/60/60/24;
for($i=0; $i <= $nbjour; $i++) {
setlocale(LC_TIME, "fr_FR");
$day = strftime('%A',$date1);
if ($day === 'Dimanche' || $day === 'Samedi') {
$date = strftime('%A %d %B %G',$date1). ' weekend';
}
else{
$date = strftime('%A %d %B %G',$date1);
}
echo $date;
$date1+=60*60*24;
echo'<br />' ;
}
我想得到这个结果
[01-09-2019
01-10-2019
01-12-2019
...
02-09-2019
02-10-2019
...
03-09-2019]
解决方案
你的问题不清楚。
如果您想更改打印日期的格式,只需更改'%A %d %B %G'
为'%Y-%m-%d'
如果您想更改顺序(首先按天排序),可以尝试以下操作:
$date1 = new DateTime("2019-09-01");
$date2 = new DateTime("2020-06-30");
$arrayOfDates = [];
while($date1 <= $date2) {
$arrayOfDates[] = clone $date1;
$date1->add(new DateInterval("P1D"));
}
usort($arrayOfDates, function($a, $b) {
if( $a->format("j") !== $b->format("j") ) {
return $a->format("j") - $b->format("j");
}
if($a < $b) {
return -1;
} elseif($a > $b) {
return 1;
}
return 0;
});
foreach($arrayOfDates as $date) {
echo $date->format("Y-m-d") . "<br/>";
}
那么这个周末的检测呢?
推荐阅读
- php - Plesk Laravel 调度程序不运行
- javascript - 服务器返回http 500错误时如何使用chrome扩展名自动重新加载页面
- php - 在 codeigniter 中从 Legacy stripe checkout 迁移到新版本
- xml - 使用 PowerShell 解析 XML 文件
- go - Go中未定义的函数位于本地包中
- javascript - forEach 循环中的异步/等待
- javascript - React Native:Linking.openUrl 抛出“可能的未处理承诺拒绝(id:0):错误:无法打开 URL:”
- reactjs - 使用 TypeScript 的函数组件中的道具问题
- javascript - 打印从 {start} 到 {end} 的文本(含)
- python - 在 Python 中使用 XPATH,我真的需要使用 get() 或 getall() 还是 xpath 字符串就足够了