繁体   English   中英

PHP-计算日期范围内的Le日

[英]PHP - Counting Leap Days in Date Range

我正在尝试计算日期范围内的leap日数。

这就是我到目前为止(从这里通过的代码)

<?php
$date_from = strtotime('2019-06-01');
$date_to = strtotime('2021-05-30');
$leapday_count = 0;

for($year=$date_from; $year<=$date_to; $year=strtotime('next year', $year)) {

    if (date('L', $year)) {
         $leapday_count++;
    }   

}

echo $leapday_count;
?>

这是我需要帮助的:

  1. 上面的代码仅查看开始日期和结束日期的年份。 例如,如果开始日期在2月29日之后,则不会考虑。 我如何确保它确实考虑了整个日期,而不仅仅是日期的年份?

    • 预期结果示例:2020-03-01 2024-02-28之间的0天
    • 预期结果示例:2020-02-28 2024-03-01之间的2个leap日

提前致谢!

停止做日期数学。 这个很难(硬。

使用日期时间和差异

http://php.net/manual/en/datetime.diff.php

那里的例子

$datetime1 = new DateTime('2009-10-11');

$datetime2 = new DateTime('2009-10-13');

$interval = $datetime1->diff($datetime2);

 echo $interval->format('%R%a days');

准确回答问题。

$start = new DateTime('2020-03-01');
$end = new DateTime('2024-02-28');
$interval = ("last day of feb next year");

$current = clone $start;
$leapYears = 0;
while ($current->modify("last day of feb") && $current <= $end) {
    if ($current->format('d') == 29 && $current > $start) {
        $leapYears++;
    }
    $current->modify("+1 year");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM