php - 从日期中查找日期范围

标签 php mysql date date-range

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

在给定日期,我想查找学年的范围。学年总是从九月一日开始,一直持续到八月末。因此,今天(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

关于php - 从日期中查找日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31452732/

相关文章:

java - 如何格式化日期

php - 使用php搜索oracle数据库

java - 我应该如何处理服务器超时和对 Android 应用程序中的 http 帖子的错误代码响应?

Java——当用户输入日期字符串时显示一年中的某一天

mySQL 错误 1064 : Clarification

php - 登录功能坏了

java - 使用 Hibernate/JPA 和 JDK Date 的不需要的自动时区转换

php - CakePHP 无法写入某些文件

php - 如何使用 PHPunit 测试抽象类?

mysql - 添加平庸的连接后,查询时间从 7 秒减至 40 秒,我是否遗漏了什么?