【php常用公共函数】php获取指定时间段中有那几年并输出年份的起始时间和结束时间

php获取指定时间段中有那几年并输出年份的起始时间和结束时间

实现思路

  1. 解析输入的时间:将输入的时间字符串转换为DateTime对象。
  2. 计算年份范围:从开始年份到结束年份,生成一个包含所有年份的数组。
  3. 输出年份的起始和结束时间:对于每一年,生成该年的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
-----------------
相关推荐
H.莓飛4 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu1144 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
爱喝水的鱼丶5 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
小灰灰搞电子6 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
外收内放6 小时前
面向对象高级(实战案例)
开发语言·python·学习
fanruitian7 小时前
python else用法
开发语言·python
FRing037 小时前
JavaScript入门到精通二十六(变量提升、函数剩余参数、展开运算符、ES6箭头函数)
开发语言·前端·javascript·es6·箭头函数
云深麋鹿7 小时前
C++ | 基于红黑树实现mymap与myset
开发语言·c++
ITxiaobing20237 小时前
海外广告投放的 IP 定位服务怎么选?一份基于实测数据的选型参考
网络协议·tcp/ip·php
weixin_417396838 小时前
桌面云终端PXE启动失败怎么排查?从DHCP Option到镜像下发
开发语言·前端·php·技术·酒店·综合布线·弱电