thinkphp中定义自己的函数
可以在前台和后台的公共文件夹中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中定义自己的函数的更多相关文章
- 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针
您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...
- VS开发】C中调用C++文件中定义的function函数
[VS开发]C中调用C++文件中定义的function函数 标签(空格分隔): [VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 精要一揽 C调用 ...
- 007.CI4框架CodeIgniter, 加载自己的helper辅助类,调用自己helper中定义各种全局函数
01. 我们在Helpers文件中创建一个Tx_helper.php的文件,里面就下一个函数 <?php //输出 function ShowMessage($AMsg) { echo &quo ...
- ThinkPHP第三天(公共函数Common加载,dump定义,模板文件,定义替换__PUBLIC__)
1.公共函数定义 自动加载:在项目的common文件夹中定义,公共函数文件命名规则为common.php,只有命名成common.php才能被自动载入. 动态加载:可以修改配置项‘LOAD_EXT_F ...
- ThinkPHP中的视图
ThinkPHP中的视图View 1.什么是视图View 所谓的视图就是用户可视化操作界面. 2.视图View组成 view类(模板引擎类似Smarty) 模板文件(html模板) 3.视图的定义 默 ...
- 在无代码文件的aspx文件中添加类、函数和字段的方法
大家都知道,在开始WebForm程序时,一个WebForm由.cs代码文件与.aspx页面文件组成.在aspx文件中可以嵌入C#代码,但无法在aspx的嵌入C#代码中定义类,函数和字段等.这样,就限制 ...
- c++ 子类,基类 中this指针 虚函数使用
笔记: 子类和基类 构造函数不显式时,的this指针相同..在QT中,如果父类基于QObject,那么构造子类时传入this指针,这样所有子类,父类,基类都是同一地址.delelater(),会del ...
- thinkphp中的__DIR__ __ROOT__ __APP__ __MODULE__ APP_PATH LIB_PATH MODULE_PATH 等是在哪里定义的?
为什么会产生这样的 路径 常量等 的 困扰? 是由于 在tp中, 使用了多种形式的常量导致的, 比如, 有php语言本身的 "魔术常量", 有 php函数, 比如dirname定义 ...
- js高级程序设计书中,有一句话在全局作用域中定义的函数实际上只 能被某个对象调用???
js没有块级作用域(题外话:函数可以作为一个块级),所以我们经常使用闭包来模拟块级作用域,以避免变量或者函数因为名称相同而产生的冲突. 重点来了: 所以,如果我们把哪个变量或者函数放在全局作用域中,那 ...
随机推荐
- Python中的栈溢出及解决办法
1.递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示, ...
- 【Spring源码分析】Bean加载流程概览
代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...
- OAutho2 请求响应格式
1.OAuth2.PasswordGrant REQUEST: POST /token HTTP/1.1 Host: localhost: Content-Type: application/x-ww ...
- Unity 网格合并
从优化角度,Mesh需要合并. 从换装的角度(这里指的是换形状.换组成部件的换装,而不是挂点型的换装),都需要网格合并.材质合并.如果是人物的换装,那么需要合并SkinnedMeshRenderer, ...
- java正则匹配并提取字串
Pattern p = Pattern.compile("\\(.*\\)"); Matcher m = p.matcher("1.2.0(23)"); if( ...
- tp框架的MVC模式
一.定义 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方 ...
- IPFS家族(二)
go-ipfs IPFS协议的go语言实现,ipfs的核心协议,最新版是v0.4.13 下载地址:https://dist.ipfs.io/#go-ipfs 源代码地址:https://github. ...
- Cannot resolve taglib with uri http://java.sun.com/jsp/jstl/core
问题 <Spring 实战>第5章,在 IDEA 中 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre ...
- Java读取properties文件连接数据库
先说为什么要有这种东西,或者我们为什么要用这种方式来写,先看经常用的方法,我们经常写的 package util; import java.sql.Connection; import java.sq ...
- 学习java第一章
本人是一名5年工作的人了,出来社会也比较早,工作经验比起刚刚出社会的大学生要和很多了,知道社会的现实与无奈,我为什么选择想学java昵,肯定受到了朋友的影响的,接下来就讲讲我学习java的过程. 1. ...