我正在阅读文档并找到它..
http://book.cakephp.org/3.0/en/core-libraries/time.html#comparing-with-intervals
但是我不能应用这个功能" isWithinNext"或者我不知道HAH。我需要知道我的约会是否有效,例如:
我的表格字段是" token_time_exp" = 2015-02-06 23:17:52 ,此日期在 72小时或3天后到期。
我用什么? wasWithinLast? isWithinNext?或两者都错了..对不起,本周我开始使用蛋糕了! :D
保存token_time_exp:
$user = $this->Users->patchEntity($user,
[
'mail_temp' => $this->request->data['mail'],
'token_mail' => 12345,
'token_time_exp' => date("Y-m-d H:i:s")
]);
我们假设今天是第9天,而令牌的日子= 6,我想这会回归真实,因为它已经72小时了。对吗?
现在,我将测试是否有3天......
if($users->token_time_exp->isWithinNext(3)){
debug('Expired');//return true
}else{
debug('Valid');//return false
}
不显示错误,它有效,但我想我不知道如何使用:\
答案 0 :(得分:1)
您的isWithinNext(3)
检查可能没有意义,假设数据库中存在5天的间隔,它将在设置后2天开始生效,然后再有效3天。如果这是你的目标行为,那么你的检查就好了。
如果您希望大于3天的到期时间间隔也有效,即您不关心日期是否在1,2,3,4或5天到期,那么您将改为使用
$user->token_time_exp->isPast()
在过期日期至少为1秒(true
)时评估为< now
,或
!$user->token_time_exp->isFuture()
当到期日期等于当前日期或至少为过去的1秒(true
)时评估为<= now
。
答案 1 :(得分:1)
使用isWithinNext(3)
,您正在测试token_time_exp
是否介于现在和将来的3之间,但是当您保存用户的token_time_exp
时,您将其设置为当前日期,所以它不会工作。
您应该使用wasWithinLast(3)
,或者将token_time_exp
保存为将来3天的日期。