gpt4 book ai didi

php - 获取两个日期之间的年份和月份

转载 作者:行者123 更新时间:2023-11-29 07:32:28 24 4
gpt4 key购买 nike

我正在尝试这段代码:

$start_date = "2015-08-19";
$end_date = "2016-02-19";
$begin = new DateTime( $start_date );
$end = new DateTime( $end_date);
$interval = new DateInterval('P1Y'); // 1 Year interval

$period = new DatePeriod($begin, $interval, $end);
foreach ( $period as $dt ){
echo $dt->format( "Y" );
}
$intervals = new DateInterval('P1M'); // 1 month interval

$periods = new DatePeriod($begin, $intervals, $end);
foreach ( $periods as $dts ){
echo $dts->format( "m" );
}

我得到这样的输出:

year:2015
Month:08,09,...,01

在此输出中,我没有得到年份:2016 和月份:02。我想要这样的输出:

year:2015,2016
Month:08,09,...,01,02

我怎样才能得到这个?

如果我的结束日期是“2016-08-20”

比我得到年份:2016 但没有得到月份:08

请注意,我的开始日期和结束日期不固定。

最佳答案

如前所述,不包括结束日期

您还可以像这样修改结束日期

$end = $end->modify( '+1 day +1 year' ); 

查看 php 的 DateTime modify了解更多信息。

更新

如果结束年份比开始日期大一年以上,那么添加一年确实会比我们想要的多一年。

解决方案是仅在需要时检查并添加年份:

if($begin > (new DateTime( $end_date))->modify('-1 year')) {
$end->modify( '+1 year' );
}
$end->modify('+1 day');

关于php - 获取两个日期之间的年份和月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32133660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com