方法一:

//判断签约状态
$signed = 0;
$sql="SELECT * from usho_community_sign_record WHERE com_id=$r->id AND
end_date = (SELECT MAX(end_date) AS Largest_End_date from usho_community_sign_record WHERE com_id=$r->id)";
$sign_model = Yii::$app->db->createCommand($sql)->queryAll(); if(!empty($sign_model)){
foreach($sign_model as $s){
$start_date = $s['start_date'];
$end_date = $s['end_date'];
$now_date = date("Y-m-d H:i:s",time());
if($start_date >$now_date){
$signed = 3;
}
if($start_date <$now_date && $end_date > $now_date){
$signed = 1;
}elseif($end_date < $now_date){
$signed = 2;
}
}
} switch($signed){
case 0:
echo '<span style="color: #FA031C">未签约</span>';
break;
case 1:
echo '<span style="color: #0AD108">履行中</span>';
break;
case 2:
echo '<span style="color: #999">已完成</span>';
break;
case 3:
echo '<span style="color: #D48905">未开始</span>';
break;
default:
echo '<span style="color: #FA031C">未知</span>';
}

方法二:

<?php
//判断签约状态
$signed = 0;
$sign_record = CommunitySignRecord::find()->where(['com_id'=>$r->id])->max('end_date');
$sign_model = CommunitySignRecord::find()->where(['com_id'=>$r->id,'end_date'=>$sign_record])->one(); if(!empty($sign_model)){
$start_date = $sign_model->start_date;
$end_date = $sign_model->end_date;
$now_date = date("Y-m-d H:i:s",time());
if($start_date >$now_date){
$signed = 3;
}
if($start_date <$now_date && $end_date > $now_date){
$signed = 1;
}elseif($end_date < $now_date){
$signed = 2;
}
} switch($signed){
case 0:
echo '<span style="color: #FA031C">未签约</span>';
break;
case 1:
echo '<span style="color: #0AD108">履行中</span>';
break;
case 2:
echo '<span style="color: #999">已完成</span>';
break;
case 3:
echo '<span style="color: #D48905">未开始</span>';
break;
default:
echo '<span style="color: #FA031C">未知</span>';
}
?>

[moka同学笔记]YII2.0 判断签约状态,sql的两种查询方法的更多相关文章

  1. [moka同学笔记]yii2.0小物件的简单使用(第一种方法)

    这是第一种方法,还有另一种方法,其实都差不多. 1.在创建widgets\HelloWiget.php <?php /** * Created by PhpStorm. * User: Admi ...

  2. [moka同学笔记]yii2.0查询数据库

      一. [:id占位符]使用 $results = Test::findBySql($sql,array(':id'=>'1 or 1=1))->all()   二. [id=1]  选 ...

  3. [moka同学笔记]yii2.0缓存

    1.控制器中CacheDemoController.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/06/29 ...

  4. [moka同学笔记]Yii2.0 modal的使用

    第一次使用,时候不明白什么原理,大概用了几次后,才模模糊糊搞清楚原来是怎么一回事,现在就把写过的代码,贴在下边. 1.在视图文件中, 第一步首先在index.php文件中 做了一个a链接的按钮 调用了 ...

  5. [moka同学笔记]yii2.0数据库操作以及分页

    1.model中models/article.php 1 <?php 2 3 namespace app\models; 4 5 use Yii; 6 7 /** 8 * This is the ...

  6. [moka同学笔记]Yii2.0验证码

    1.Model中Code.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/07/25 * Time: 10:48 ...

  7. [moka同学笔记]yii2.0表单的使用

    1.创建model   /biaodan.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * Tim ...

  8. [moka同学笔记]yii2.0小物件的简单使用(第二种方法)

    1.在widgets/TestWidget.php中 <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * T ...

  9. [moka同学笔记]Yii2.0循环查询并对结果累加求和

    在控制器中查询好数据  $model 在视图中输入 <?php foreach($model as $key=>$r):?> <tr class="text-cent ...

随机推荐

  1. Atitit  五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I

    Atitit  五种IO模型attilax总结 blocking和non-blocking synchronous IO和asynchronous I   1.1. .3 进程的阻塞1 1.2. 网络 ...

  2. 每天一个linux命令(37):date命令

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...

  3. 创建oracle数据库job服务:PlSqlDev操作job

    PlSqlDev操作job 创建job 1.选择job文件夹,右键     2.点击新建     3.对应填写完成,可以点击“查看SQL”查看sql语句,确定无误后,点击“应用”即创建完成 4.此时, ...

  4. 那些年我们写过的T-SQL(上篇)

    在当今这个多种不同数据库混用,各种不同语言不同框架融合的年代(一切为了降低成本并高效的提供服务),知识点多如牛毛.虽然大部分SQL脚本可以使用标准SQL来写,但在实际中,效率就是一切,因而每种不同厂商 ...

  5. android 处理302地址

    最近项目中需要用到重定向下载,所以找了很多的方法都不合适.因为下载的链接并非单纯的地址,而是需要多次转发的, 在下载的时候用的是URL来打开数据流.但是多次测试并不能对多次跳转的链接打开请求.对于30 ...

  6. Android Junit测试框架

    对应用进行单元测试: 使用Junit测试框架,是正规Android开发的必用技术.在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 1.配置指令集和函数库: (1)配置指令集,指定 ...

  7. Anliven - 解决问题的一些方法

    How to resolve the problem? 获取基本的相关信息(后续处理问题的基础)  在怎样的背景环境下?发生了怎样的问题? 如果无法清楚地辨别或陈述问题的基本信息,那么,此时要面对的将 ...

  8. github代码管理工具的使用方法

    一.创建一个存储库 1.点击页面右上方你的用户名右边的+标志,然后点击下拉列表中的"new repository"选项,一般填写项目名称和选择public 和选择初始化有READM ...

  9. 测试Servlet生命周期学习笔记

    测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ****************************************************** ...

  10. 解决360、猎豹浏览器等极速模式下css3兼容问题

    有时候你会发现你写的animation动画的css3效果,在IE.谷歌.火狐等主流的新版本的浏览器的是没有什么兼容问题的,即便你不写前缀,也是可以显示动画效果的.然后,你本地在360浏览器或猎豹浏览器 ...