您如何解决以下问题?
在特定日期,我想找到一个学年的范围。学年始终从9月1日开始,一直持续到8月的最后一年。因此,对于今天(2015-07-16)我希望该函数返回日期2014-09-01和2015-08-31。如果我在三个月内(2015-10-16)运行同样的功能,我希望得到2015-09-01和2016-08-31。
谢谢,
/托马斯
- @ anant-kumar-singh要求的编辑 -
PHP中的示例函数:
function getAcademicYear($date) {
// Logic code...
return array($dateStart, $dateEnd);
}
调用getAcademicYear('2015-07-16');
应该返回数组['2014-09-01','2015-08-31']
并致电getAcademicYear('2015-10-16');
应该返回数组['2015-09-01','2016-08-31']
- 编辑 -
function findAcademicYear($date) {
$dateTime = new DateTime($date);
$dateTime->sub(new DateInterval("P8M"));
return(array(
"startDate" => date("Y-m-d", strtotime($dateTime->format("Y")."-08-31 + 1 day")),
"endDate" => ($dateTime->format("Y") + 1)."-08-31")
);
}
答案 0 :(得分:2)
我会使用以下逻辑:从日期减去8个月,提取年份,并将其用于年度规范:
select date(concat(year(date_sub(date, interval 8 month)), '-09-01')) as academic_start,
date(concat(1 + year(date_sub(date, interval 8 month)), '-08-31')) as academic_end