繁体   English   中英

从日期中查找日期范围

[英]Find a date range from a date

您将如何解决以下问题?

我想在给定的日期找到一个学年的范围。 学年总是从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")
        );
}

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

暂无
暂无

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

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