CakePHP 3 - 如何检查日期是否有效?
CakePHP 3 - How to check if the date is valid?
我在阅读文档时发现了它..
http://book.cakephp.org/3.0/en/core-libraries/time.html#comparing-with-intervals
但是我不能应用这个功能"isWithinNext"或者我不知道哈哈。我需要知道我的日期是否有效,例如:
我的Table字段是"token_time_exp" = 2015-02-06 23:17:52,这个日期在72小时或3天.
我用什么?是WithinLast?是WithinNext?或者两者都错了……对不起,我这周开始用蛋糕了! :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 天,我想 return 是正确的,因为已经 72 小时了……对吗?
现在,我会测试是否已经 3 天..
if($users->token_time_exp->isWithinNext(3)){
debug('Expired');//return true
}else{
debug('Valid');//return false
}
不显示错误,它有效,但我想我不知道如何使用:\
您的 isWithinNext(3)
检查可能没有意义,假设数据库中存在 5 天的间隔,它将在设置后 2 天开始有效,然后再有效期 3 天。如果这是您的目标行为,那么您的检查就可以了。
如果您希望大于 3 天的过期间隔也有效,即您不关心日期是否在 1、2、3、4 或 5 天后过期,那么您而是使用
$user->token_time_exp->isPast()
当过期日期至少为过去 1 秒 (< now
) 时,计算结果为 true
,或者
!$user->token_time_exp->isFuture()
当到期日期等于当前日期或过去至少 1 秒 (<= now
) 时,计算结果为 true
。
通过使用 isWithinNext(3)
,您正在测试 token_time_exp
是否介于现在和未来 3 之间,但是当您保存用户的 token_time_exp
时,您将其设置为当前日期, 所以它不会起作用。
您应该改用 wasWithinLast(3)
,或者将 token_time_exp
保存为 3 天后的日期。
我在阅读文档时发现了它..
http://book.cakephp.org/3.0/en/core-libraries/time.html#comparing-with-intervals
但是我不能应用这个功能"isWithinNext"或者我不知道哈哈。我需要知道我的日期是否有效,例如:
我的Table字段是"token_time_exp" = 2015-02-06 23:17:52,这个日期在72小时或3天.
我用什么?是WithinLast?是WithinNext?或者两者都错了……对不起,我这周开始用蛋糕了! :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 天,我想 return 是正确的,因为已经 72 小时了……对吗?
现在,我会测试是否已经 3 天..
if($users->token_time_exp->isWithinNext(3)){
debug('Expired');//return true
}else{
debug('Valid');//return false
}
不显示错误,它有效,但我想我不知道如何使用:\
您的 isWithinNext(3)
检查可能没有意义,假设数据库中存在 5 天的间隔,它将在设置后 2 天开始有效,然后再有效期 3 天。如果这是您的目标行为,那么您的检查就可以了。
如果您希望大于 3 天的过期间隔也有效,即您不关心日期是否在 1、2、3、4 或 5 天后过期,那么您而是使用
$user->token_time_exp->isPast()
当过期日期至少为过去 1 秒 (< now
) 时,计算结果为 true
,或者
!$user->token_time_exp->isFuture()
当到期日期等于当前日期或过去至少 1 秒 (<= now
) 时,计算结果为 true
。
通过使用 isWithinNext(3)
,您正在测试 token_time_exp
是否介于现在和未来 3 之间,但是当您保存用户的 token_time_exp
时,您将其设置为当前日期, 所以它不会起作用。
您应该改用 wasWithinLast(3)
,或者将 token_time_exp
保存为 3 天后的日期。