我正在寻找编写函数来设置具有给定日期的日期期限/日期间隔的方法。...
首先,让我解释一下上下文:
我有一个用于管理婚礼题字的应用程序。 我在档案页面中使用的是带有“季节性”的系统,例如
每个季节(或日期时段)从9月1日开始,并在8月31日结束,因此例如2017-2018对应于2017-09-01至2018-08-31,2018-2019对应于2018-09-01到2019-08-31等。
所以,如果我有一个像2019-01-23这样的结婚日期,我想保存相应的季节,就在2018-2019。
实际上我写了这段代码:
//for example (I have a date object in fact in this $evenement var)
$evenement = "2019-01-23";
$start = Carbon::createFromFormat('Y-m-d', $evenement->copy()->subYear()->year . '09-01');
$end = Carbon::createFromFormat('Y-m-d', $evenement->year . '08-31');
if($evenement->between($depart, $fin)){
$saison = $depart->year . '-' . $fin->year;
}
如果日期在2019年1月1日之后,则可以使用,但不适用于之前的日期和将来的日期,(并且当前不支持此功能)...
您能帮我实现这个目标吗?很好。
谢谢
答案 0 :(得分:0)
我在昨晚找到了解决方案!
这是我获得给定日期的“季节”功能的功能。
public static function getSeason($date)
{
if($date->month >= 9 && $date->month <= 12){
$annee1 = $date->year;
$annee2 = $annee1 + 1;
$saison = $annee1 . '-' . $annee2;
}
elseif($date->month >= 1 && $date->month <= 8){
$annee2 = $date->year;
$annee1 = $annee2 - 1;
$saison = $annee1 . '-' . $annee2;
}
return $saison;
}
例如,如果日期为2018-10-03,
$season = "2018-2019";
如果日期= 2019-04-21,
$season = "2018-2019";
您对此功能有什么看法,我可以对其进行优化吗?
谢谢