检查日期是否在两个月之间,年份在八月结束

时间:2012-12-18 19:19:03

标签: php datetime

我在创建日期算法(使用DateTime对象)时遇到困难,该算法会检查日期是否在两个给定月份之间(年末被视为8月31日)。

所以今年年初被视为9月1日,XXXX和年底被认为是8月31日XXXX + 1

$today = new DateTime('now');

我需要查看日期是否在6月到5月之间。

例如,如果是2009年12月 是2009年6月到2010年5月之间的日期吗? (是)

如果日期是2014年4月
是2013年6月到2014年5月之间的日期吗? (是)

如果日期是2014年7月
日期是2013年6月至2014年5月。(不)

2 个答案:

答案 0 :(得分:1)

DateTime对象可以像两个整数一样进行比较:

$date1 = new DateTime('December 2012');
$date2 = new DateTime('June 2012');
$date3 = new DateTime('May 2013');

if ($date1 > $date2 && $date1 < $date3)
{
     // place your code here
}

答案 1 :(得分:0)

找到了让我开始的答案:

https://stackoverflow.com/a/11937688/36545

function academicYear(DateTime $userDate) {
    $currentYear = $userDate->format('Y');
    $cutoff = new DateTime($userDate->format('Y') . '/08/31 23:59:59');
    if ($userDate < $cutoff) {
        return ($currentYear-1) . '/' . $currentYear;
    }
    return $currentYear . '/' . ($currentYear+1);
}