获取PHP中生日时间范围的上限和下限日期

时间:2017-01-01 18:50:23

标签: php date datetime date-arithmetic

我正在尝试计算两个日期,一周前的日期和用户生日后八周的日期。

在我们的示例中,我们希望授予用户在其生日周围的时间范围内访问某些特价的权限。 生日前一周 直到 生日后8周

e.g. #1

User birthday: 1988-01-05
Timeframe should be: YYYY-12-29 to YYYY-03-03

Current Date:  
1) 2016-12-30 
2) 2017-01-01 
3) 2017-02-01
4) 2016-12-28
5) 2017-12-28

Result should be:
1) True
2) True
3) True
4) False
5) False

e.g. #2
User birthday: 1988-12-30
Timeframe should be: YYYY-12-23 to YYYY-02-24

Current Date: 
1) 2016-12-30 
2) 2017-01-01 
3) 2017-02-01
4) 2016-12-28
5) 2017-12-28

Result should be:
1) True
2) True
3) True
4) True
5) True

有没有人试图通过一些基本的例子帮助我完成类似的事情,点亮我头上的灯泡?

1 个答案:

答案 0 :(得分:1)

使用carbon library.

可以轻松实现这一目标
$dt = Carbon::create(1991, 1, 31, 0); // Set the birthday
$dt->addWeeks(8); // Gives you a date 8 weeks after
$dt->subWeek(); // Gives you a date 1 week before

然后你不必处理疯狂的约会操作,这是一个巨大的痛苦。