Php 在查询-Yii2中选择DateTime中的日期

Php 在查询-Yii2中选择DateTime中的日期,php,yii2,Php,Yii2,我有一张活动表。其中,事件的截止日期以日期时间格式存储。但是,由于需求发生了一些变化,现在我们只需要显示到期日期列中的日期(不包括时间) 事件(表) 我想用日期来展示所有事件。与2016-08-09下的所有事件一样 所以,我尝试了这个查询 $upcoming_events = Events::find()->select(['due_date'])->distinct() ->where(['user_id' => Yii::$app->use

我有一张活动表。其中,事件的
截止日期
日期时间
格式存储。但是,由于需求发生了一些变化,现在我们只需要显示
到期日期
列中的
日期
(不包括时间)

事件(表)

我想用日期来展示所有事件。与
2016-08-09
下的所有事件一样

所以,我尝试了这个查询

$upcoming_events = Events::find()->select(['due_date'])->distinct()
           ->where(['user_id' => Yii::$app->users->getId(),'is_completed'=> 0 ])
           ->andWhere(['>=','due_date',date("Y-m-d")])
          ->orderBy(['due_date'=>'ASC'])->limit(5)->all();
但是,现在有两个日期被选择为
2016-08-09 19:16:00
2016-08-09 19:53:00
。由于,日期部分未从select语句中提取。它在同一日期显示了2次

var\u dump(即将发生的事件)

如何从日期时间字段中仅检索日期,以便在Yii2查询中仅获取1个日期


任何帮助/提示/建议都是值得欣赏的。

下面是一个查询,您可以使用Yii2模型查询从时间戳获取转换后的日期

$upcoming_events     = Yii::$app->$db->createCommand('SELECT  count(DISTINCT(date(due_date))) as edate FROM event_master')
    ->queryAll();


    foreach ($upcoming_events as $upevnts){
    echo $upevnts['edate'];
}

也可以仅使用日期部分

 upcoming_events = Events::find()->select('date(due_date) as due_date')->distinct()
       ->where(['user_id' => Yii::$app->users->getId(),'is_completed'=> 0 ])
       ->andWhere(['>=','due_date',date("Y-m-d")])
      ->orderBy(['due_date'=>'ASC'])->limit(5)->all();
我在活动查询中搜索了
日期(到期日)
。我没有得到。因此,我使用了命令生成器

而且,它起了作用

$upcoming_events_date = Yii::$app->db->createCommand("SELECT DISTINCT date(due_date) FROM events WHERE user_id = :user_id AND is_completed=:is_completed AND  due_date > :due_date ORDER BY due_date ASC LIMIT 0,5")
                                   ->bindParam(':user_id',Yii::$app->users->getId())
                                    ->bindParam(':is_completed',0)
                                    ->bindParam(':due_date',date('Y-m-d'))
                                    ->queryAll();

但是,即使它有效。我想知道活动查询中的解决方案

您可以简单地使用此示例

YourModelName::find()->where(['date(timestamp)' => php('Y-m-d')]->one(); 

在这里,日期将从时间戳列中提取

您需要打印日期还是需要签入查询?$due_date=date('Y-m-d',strottime($model->due_date));然后将$due_date传递到queryHi@RajkumarR:我想打印日期,甚至传递这个日期,以找出与该特定日期相关的所有事件。@Inaseskull:有没有办法在yii2活动查询的datetime字段中选择部分日期。?没有vijay bhai。如何在yii2查询中使用
选择日期(到期日)
。这是我的问题,谢谢你。这就是我要找的。मदद कर.. खुशाल रह.. @纳纳哈哈哈
:D
正是@vijaynathji
$upcoming_events_date = Yii::$app->db->createCommand("SELECT DISTINCT date(due_date) FROM events WHERE user_id = :user_id AND is_completed=:is_completed AND  due_date > :due_date ORDER BY due_date ASC LIMIT 0,5")
                                   ->bindParam(':user_id',Yii::$app->users->getId())
                                    ->bindParam(':is_completed',0)
                                    ->bindParam(':due_date',date('Y-m-d'))
                                    ->queryAll();
YourModelName::find()->where(['date(timestamp)' => php('Y-m-d')]->one();