从日期中查找日期范围

Find a date range from a date

你会如何解决下面的问题?

在给定的日期,我想找到一个学年的范围。学年总是从 9 月 1 日开始,一直持续到 8 月底。因此,对于今天 (2015-07-16),我想要函数 return 日期 2014-09-01 和 2015-08-31。如果我要 运行 在三个月 (2015-10-16) 内执行相同的功能,我想获得 2015-09-01 和 2016-08-31 returned.

谢谢,

/托马斯

--@anant-kumar-singh 要求编辑--

PHP中的示例函数:

function getAcademicYear($date) {
    // Logic code...
    return array($dateStart, $dateEnd);
}

调用getAcademicYear('2015-07-16');应该return数组,['2014-09-01','2015-08-31']

并调用 getAcademicYear('2015-10-16'); 应该 return 数组,['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")
        );
}

我会使用以下逻辑:从日期减去 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