【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
-----------------
相关推荐
hqwest5 分钟前
码上通QT实战28--系统设置03-用户管理布局
开发语言·qt·qdialog·模态窗体·非模态窗体·qwidget!
无限进步_11 分钟前
【C语言&数据结构】二叉树链式结构完全指南:从基础到进阶
c语言·开发语言·数据结构·c++·git·算法·visual studio
用户416596736935512 分钟前
深入解析安卓 ELF 16KB 页对齐:原生编译与脚本修复的权衡
android
TDengine (老段)14 分钟前
TDengine Node.js 语言连接器入门指南
大数据·开发语言·物联网·node.js·vim·时序数据库·tdengine
脏脏a16 分钟前
STL stack/queue 底层模拟实现与典型算法场景实践
开发语言·c++·stl_stack·stl_queue
烤麻辣烫17 分钟前
Java开发手册规则精选
java·开发语言·学习
恋猫de小郭20 分钟前
Compose Multiplatform 1.10 Interop views 新特性:Overlay 和 Autosizing
android·flutter·macos·kotlin·github·objective-c·cocoa
Hi2024021722 分钟前
使用Smokeping监控公网服务器质量
运维·服务器·php·smokeping
DYS_房东的猫27 分钟前
《 C++ 零基础入门教程》第8章:多线程与并发编程 —— 让程序“同时做多件事”
开发语言·c++·算法
ekkcole31 分钟前
java实现对excel模版填充保存到本地后合并单元格并通过网络下载
java·开发语言·excel