方法一:

//判断签约状态
$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. [Spring框架]Spring开发实例: XML+注解.

    前言: 本文为自己学习Spring记录所用, 文章内容包括Spring的概述已经简单开发, 主要涉及IOC相关知识, 希望能够对新入门Spring的同学有帮助, 也希望大家一起讨论相关的知识. 一. ...

  2. atitit 业务 触发器原理. 与事件原理 docx

    atitit 业务 触发器原理. 与事件原理 docx 1.1. 呵呵,你需要需要一个业务 触发器..1 1.2. 触发器/事件/中断的原理1 1.3. Io 硬件中断的原理( 中断的低层有cpu轮询 ...

  3. 11.按要求编写Java应用程序。 (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另 一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。

    package java1; public class Che { //属性 public String nub; public int speed; public double weight ; C ...

  4. OpenCascade Shape Representation in OpenSceneGraph

    OpenCascade Shape Representation in OpenSceneGraph eryar@163.com 摘要Abstract:本文通过程序实例,将OpenCascade中的拓 ...

  5. WPF自定义控件与样式(11)-等待/忙/正在加载状态-控件实现

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要有三种实现方式 ...

  6. 30分钟全面解析-图解AJAX原理

    先上原理图: 高清无码图在这里:点我查看大图!!! 背景: 1.传统的Web网站,提交表单,需要重新加载整个页面. 2.如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差. 3 ...

  7. SQL-基础知识

    SQL Server中的关于时间转换和获取时间的方法 1.获取当前UTC时间 GETUTCDATE()

  8. 基于TCPCopy的Dubbo服务引流工具-DubboCopy

    TCPCopy顾名思义,就是一个可以将tcp流量复制的工具(其实也可以复制UDP).有了这样一个工具,我们就可以真实的复制线上流量,然后将这些流量复制到我们的测试服务器上.这样就可以很容易模拟线上真实 ...

  9. 在Spring Boot中使用Https

    本文介绍如何在Spring Boot中,使用Https提供服务,并将Http请求自动重定向到Https. Https证书 巧妇难为无米之炊,开始的开始,要先取得Https证书.你可以向证书机构申请证书 ...

  10. WIN7 共享网络方法

    WIN7 共享网络方法 第一步: 按WIN+R调出“运行”栏,在“运行”菜单栏输入“cmd”,出现命令提示符,输入命令“netsh wlan set hostednetwork mode=allow ...