php获取指定时间段中有那几年并输出年份的起始时间和结束时间
实现思路
- 解析输入的时间:将输入的时间字符串转换为DateTime对象。
- 计算年份范围:从开始年份到结束年份,生成一个包含所有年份的数组。
- 输出年份的起始和结束时间:对于每一年,生成该年的1月1日作为起始时间和12月31日作为结束时间。
实现代码
php
复制代码
<?php
function getYearsBetweenDates($startDate, $endDate) {
// 将输入的时间字符串转换为 DateTime 对象
$start = new DateTime($startDate);
$end = new DateTime($endDate);
// 确保开始时间早于结束时间
if ($start > $end) {
return "开始时间不能晚于结束时间";
}
// 获取开始年份和结束年份
$startYear = (int)$start->format('Y');
$endYear = (int)$end->format('Y');
// 生成年份范围
$years = range($startYear, $endYear);
// 输出每一年的起始和结束时间
foreach ($years as $year) {
$startOfYear = new DateTime("$year-01-01");
$endOfYear = new DateTime("$year-12-31");
echo "年份: $year\n";
echo "起始时间: " . $startOfYear->format('Y-m-d') . "\n";
echo "结束时间: " . $endOfYear->format('Y-m-d') . "\n";
echo "-----------------\n";
}
}
// 示例调用
getYearsBetweenDates('2020-05-15', '2023-08-20');
?>
输出结果
php
复制代码
年份: 2020
起始时间: 2020-01-01
结束时间: 2020-12-31
-----------------
年份: 2021
起始时间: 2021-01-01
结束时间: 2021-12-31
-----------------
年份: 2022
起始时间: 2022-01-01
结束时间: 2022-12-31
-----------------
年份: 2023
起始时间: 2023-01-01
结束时间: 2023-12-31
-----------------