如何在 cakephp 3 中创建的日期时间中获取分钟间隔



我正在尝试计算创建的数据时间间隔之间的数据。

我尝试了以下代码

$check->where( function( $exp, $q ) {
                    return $exp->between(
                        $q->newExpr( 'NOW()' ),
                        $q->newExpr( 'created' ),
                        $q->newExpr( 'DATE_ADD( created, INTERVAL 30 MINUTE )' )
                    );
 } ); 

我也试过

$check->where( [
             'TIMESTAMPDIFF( MINUTE, created, NOW() ) >=' => 1,
             'TIMESTAMPDIFF( MINUTE, created, NOW() ) <=' => 30,
] );

两次我都得到了结果0

但是如果我尝试使用调试.log查询,我会得到结果1

SELECT (COUNT(*)) AS count FROM money_transfer_transactions MoneyTransferTransactions WHERE (user_id = 2 AND receiver_account_number = '01737810405' AND NOW() BETWEEN created AND DATE_ADD( created, INTERVAL 30 MINUTE ))

这里正确的 ans 是 1。

我将如何在两个日期时间间隔之间获得 30 分钟?

您可以使用 Chronos 类来处理 CakePHP 中的日期。您可以创建实例,然后对它们进行差异处理。

最新更新