You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现澳大利亚财年天数计算(区分平闰年)求助

澳大利亚财年天数判断(PHP实现)

澳大利亚财年范围为当年7月1日至次年6月30日,需根据输入日期判断所属财年的总天数:若财年包含闰年2月29日则返回366,否则返回365。要求仅使用date()、strtotime()等基础PHP函数,禁止使用OOP。

实现代码

function getAusFinancialYearDays($inputDate) {
    // 将输入日期转换为时间戳,同时校验有效性
    $timestamp = strtotime($inputDate);
    if (!$timestamp) {
        return false;
    }
    
    // 获取输入日期的月份(1-12)
    $month = date('n', $timestamp);
    // 确定财年的结束年份:7月及之后的日期,结束年份为当前年份+1;否则为当前年份
    $endYear = $month >= 7 ? date('Y', $timestamp) + 1 : date('Y', $timestamp);
    
    // 判断结束年份是否为闰年(闰年的2月29日存在,date('L')返回1)
    $isLeapYear = date('L', strtotime("$endYear-02-29"));
    
    return $isLeapYear ? 366 : 365;
}

// 测试示例
echo getAusFinancialYearDays('2023-08-16'); // 输出366
echo getAusFinancialYearDays('2024-06-30'); // 输出366
echo getAusFinancialYearDays('2024-07-01'); // 输出365
echo getAusFinancialYearDays('2020-06-30'); // 输出366

逻辑说明

  1. 日期有效性校验:通过strtotime()将输入日期转为时间戳,若转换失败则返回false处理无效输入;
  2. 财年结束年份判定:输入日期在7月及以后,所属财年结束于次年;若在7月以前,结束于当年;
  3. 闰年判断:利用date('L')判断结束年份是否为闰年——由于澳大利亚财年覆盖到结束年份的6月30日,只要结束年份是闰年,其2月29日必然落在财年范围内,因此直接以此判定财年总天数。

内容的提问来源于stack exchange,提问作者iggiesboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:32:36