【问题标题】:CakePHP 3 - How to check if the date is valid?CakePHP 3 - 如何检查日期是否有效?
【发布时间】:2015-02-07 00:51:22
【问题描述】:

我正在阅读文档并找到它..

http://book.cakephp.org/3.0/en/core-libraries/time.html#comparing-with-intervals

但我无法应用此功能“isWithinNext”,或者我不知道 HAH。我需要知道我的日期是否有效,例如:

My Table 的字段是 "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 天,我想这会返回 true,因为已经 72 小时了.. 对吗?

现在,我会测试是否是 3 天..

if($users->token_time_exp->isWithinNext(3)){
            debug('Expired');//return true
        }else{
            debug('Valid');//return false
        }   

不显示错误,它可以工作,但我想我不知道如何使用:\

【问题讨论】:

  • 嗨,我喜欢你写这个问题的方式:D ...但是我们需要知道你是如何声明时间的,请向我们展示你的代码,它显示了时间声明以及你如何调用函数。如果有任何错误,显示错误很好。
  • 谢谢 :D 我会编辑的! ^^
  • 您是在谈论在保存数据之前验证数据(即最大过期间隔 = 从现在起 3 天),还是在检查从数据库中检索到的值(是否已达到过期日期)?
  • 是的,检查从数据库中检索到的值!需要3天有效,否则用户需要生成新密钥。

标签: php cakephp cakephp-3.0


【解决方案1】:

通过使用isWithinNext(3),您正在测试token_time_exp 是否介于现在和未来3 之间,但是当您保存用户的token_time_exp 时,您将其设置为当前日期,因此它将不起作用。

您应该改用wasWithinLast(3),或将token_time_exp 保存为未来3 天后的日期。

【讨论】:

    【解决方案2】:

    您的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

    【讨论】:

    • 这些函数,“isFuture”或“isPast”,我在文档中没有找到..是蛋糕2.x吗?
    • @ThiagoMoraes 他们是provided by Carbon,\Cake\I18N\Time 扩展。稍后我将删除我的答案,因为我误解了你的问题。
    猜你喜欢
    • 2017-02-28
    • 2012-03-15
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 2013-01-09
    • 2011-02-26
    相关资源
    最近更新 更多