可以在前台和后台的公共文件夹中common.php中定义自己的函数,这样就可以在控制器中调用,而不需要调用对象了

/**
* @name addvtorandp
* @author 黄峰1664253936@qq.com
* @version 在索引数组任意位置插入元素
*/
public function addvtorandp($array,$position,$value){
$tmp=array();
for($i=0;$i<=count($array);$i++){
if($i==$position){
$tmp[$position]=$value;
}elseif($i<$position){
$tmp[$i]=$array[$i];
}else{
$tmp[$i]=$array[$i-1];
}
}
return $tmp;
} /**
* @name getCompleteArr
* @author 黄峰1664253936@qq.com
* @param beginTime开始时间,endTime结束时间,$list非完整数据二位数组
* @return countArr统计数的索引数组,dateArr日期的索引数组
* @version 如果日期没有设置那么begin日期就是15days ago,endTime=nowdate
*/
public function getCompleteArr($endtime,$misdays=15,$list)
{
foreach ($list as $vo) {
$dateArr[]=$vo[day];
$countArr[]=$vo[count];
}
$maxDate=$endtime;
$maxDay=intval(substr($maxDate, -2));
$maxMon=intval(substr($maxDate,strlen($maxDate)-4,2));
//下面是回溯到上一月的情况
if($maxDay<=$misdays)
{
$minMon=$maxMon-1;
$minMon=sprintf("%02d",$minMon);
//上月是大月
if($minMon==1||$minMon==3||$minMon==5||$minMon==7||$minMon==8||$minMon==10||$minMon==12){
$minDay=31-($misdays-$maxDay);
$j=0;
for($i=$minDay;$i<=31;$i++){
if($i<10){
$i="0".$i;
}
$tmpDate=substr($maxDate,0,4)."$minMon"."$i";
$i=intval($i);
if(!in_array($tmpDate,$dateArr)){ $dateArr=$this->addvtorandp($dateArr,$j,$tmpDate);
$countArr=$this->addvtorandp($countArr,$j,0); }
$j++;
}
$maxMon = sprintf("%02d",$maxMon);
for($i=1;$i<$maxDay;$i++){
$i=sprintf("%02d",$i);
$tmpDate=substr($maxDate,0,4)."$maxMon"."$i";
$i=intval($i);
if(!in_array($tmpDate,$dateArr)){
$dateArr=$this->addvtorandp($dateArr,$j,$tmpDate);
$countArr=$this->addvtorandp($countArr,$j,0); }
$j++;
}
}else{
//如果上月是小月
$minDay=30-($misdays-$maxDay);
$j=0;
for($i=$minDay;$i<=30;$i++){
$i=sprintf("%02d",$i);
$minMon = sprintf("%02d",$minMon);
$tmpDate=substr($maxDate,0,4)."$minMon"."$i";
$i=intval($i);
if(!in_array($tmpDate,$dateArr)){ $dateArr=$this->addvtorandp($dateArr,$j,$tmpDate);
$countArr=$this->addvtorandp($countArr,$j,0); }
$j++;
}
$maxMon=sprintf("%02d",$maxMon);
for($i=1;$i<$maxDay;$i++){
$i=sprintf("%02d",$i);
$tmpDate=substr($maxDate,0,4)."$maxMon"."$i";
$i=intval($i);
if(!in_array($tmpDate,$dateArr)){
$dateArr=$this->addvtorandp($dateArr,$j,$tmpDate);
$countArr=$this->addvtorandp($countArr,$j,0); }
$j++;
}
}
//endTag上面是需要回溯到上一月的情况
}else{
//下面是不需要回溯到上一个月
$minDay=$maxDay-$misdays;
$j=0;
for($i=$minDay;$i<=$maxDay;$i++){
$i=sprintf("%02d",$i);
$maxMon = sprintf("%02d",$maxMon);
$tmpDate=substr($maxDate,0,4)."$maxMon"."$i";
$i=intval($i);
if(!in_array($tmpDate,$dateArr)){
$dateArr=$this->addvtorandp($dateArr,$j,$tmpDate);
$countArr=$this->addvtorandp($countArr,$j,0);
}
$j++;
} }
$listArr[dateArr]=$dateArr;
$listArr[countArr]=$countArr;
return $listArr;
}//endTag函数getCompleteArr结束

thinkphp中定义自己的函数的更多相关文章

  1. 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针

      您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...

  2. VS开发】C中调用C++文件中定义的function函数

    [VS开发]C中调用C++文件中定义的function函数 标签(空格分隔): [VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 精要一揽 C调用 ...

  3. 007.CI4框架CodeIgniter, 加载自己的helper辅助类,调用自己helper中定义各种全局函数

    01. 我们在Helpers文件中创建一个Tx_helper.php的文件,里面就下一个函数 <?php //输出 function ShowMessage($AMsg) { echo &quo ...

  4. ThinkPHP第三天(公共函数Common加载,dump定义,模板文件,定义替换__PUBLIC__)

    1.公共函数定义 自动加载:在项目的common文件夹中定义,公共函数文件命名规则为common.php,只有命名成common.php才能被自动载入. 动态加载:可以修改配置项‘LOAD_EXT_F ...

  5. ThinkPHP中的视图

    ThinkPHP中的视图View 1.什么是视图View 所谓的视图就是用户可视化操作界面. 2.视图View组成 view类(模板引擎类似Smarty) 模板文件(html模板) 3.视图的定义 默 ...

  6. 在无代码文件的aspx文件中添加类、函数和字段的方法

    大家都知道,在开始WebForm程序时,一个WebForm由.cs代码文件与.aspx页面文件组成.在aspx文件中可以嵌入C#代码,但无法在aspx的嵌入C#代码中定义类,函数和字段等.这样,就限制 ...

  7. c++ 子类,基类 中this指针 虚函数使用

    笔记: 子类和基类 构造函数不显式时,的this指针相同..在QT中,如果父类基于QObject,那么构造子类时传入this指针,这样所有子类,父类,基类都是同一地址.delelater(),会del ...

  8. thinkphp中的__DIR__ __ROOT__ __APP__ __MODULE__ APP_PATH LIB_PATH MODULE_PATH 等是在哪里定义的?

    为什么会产生这样的 路径 常量等 的 困扰? 是由于 在tp中, 使用了多种形式的常量导致的, 比如, 有php语言本身的 "魔术常量", 有 php函数, 比如dirname定义 ...

  9. js高级程序设计书中,有一句话在全局作用域中定义的函数实际上只 能被某个对象调用???

    js没有块级作用域(题外话:函数可以作为一个块级),所以我们经常使用闭包来模拟块级作用域,以避免变量或者函数因为名称相同而产生的冲突. 重点来了: 所以,如果我们把哪个变量或者函数放在全局作用域中,那 ...

随机推荐

  1. linux系统基础优化16条知识汇总

    优化的总结: 1.不用root管理,以普通用户的名义通过sudo授权管理. 2.更改默认的远程连接SSH服务端口,禁止root用户远程连接,甚至 要更改只监听内网IP. 3.定时自动更新服务区时间,使 ...

  2. jsoup.parse 的一个坑

    那天,写好一个爬虫 爬取某个网站的数据. 当时调用了公司不知道某个人写的 一个方法 logger.info(joururl); doc= util.getDocument(joururl.toStri ...

  3. 软件测试必备-前端知识点之html基础

    前端必备知识点 第一部分:HTML基础 一. web前端标准 1. 结构标签----html 2. 样式标准,美化----css 3. 行为标准---js 二. 五大浏览器厂商 1. ie 2. 谷歌 ...

  4. cache 订单队列 - TP5

    使用cache实现一个简单粗糙的订单推送队列 Linux  定时任务 * * * * * /usr/bin/curl  http://tc.m.com/test.php /** * User: [一秋 ...

  5. 状压dp入门

    状压dp的含义 在我们解决动态规划题目的时候,dp数组最重要的一维就是保存状态信息,但是有些题目它的具有dp的特性,并且状态较多,如果直接保存的可能需要三维甚至多维数组,这样在题目允许的内存下势必是开 ...

  6. Hadoop2.x 体系结构和源码编译

    体系结构 Hadoop1的核心组成包括HDFS和MapReduce.HDFS和MapReduce的共同点就是他们都是分布式的. HDFS是包括主节点NameNode,只有一个,还有很多从节点DataN ...

  7. 微软Skype Linux客户端全新发布

    前两天,微软说要给“Linux 用户带来一个令人兴奋的新闻”,今天,这个新闻来了.它刚刚为 Linux 发布了一个新的 Skype 客户端. 此次发布,微软为 Linux 带来的 Skype 客户端与 ...

  8. 《SQL必知必会》读书笔记

    个人博客文章地址:https://feiffy.cc/%E3%80%8ASQL%E5%BF%85%E7%9F%A5%E5%BF%85%E4%BC%9A%E3%80%8B 很适合入门的一本SQL书,虽相 ...

  9. [Luogu 1122] 最大子树和

    题目 Description 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题 ...

  10. MYSQL数据库学习十 单表数据记录查询

    10.1 简单数据记录查询 SELECT field1,field2,...fieldn FROM table_name; “*” ——查询所有记录 SELECT * FROM table_name; ...