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没有块级作用域(题外话:函数可以作为一个块级),所以我们经常使用闭包来模拟块级作用域,以避免变量或者函数因为名称相同而产生的冲突. 重点来了: 所以,如果我们把哪个变量或者函数放在全局作用域中,那 ...
随机推荐
- C++与Java通过WebService通信(下)
一. 前言 本篇讲述如何通过Java客户端访问C++服务端发布的SOAP模式的WebService接口.文档中的样例代码拷贝出去即可运行,所有的代码都是本地测试OK的:本文不但解决了接口调用的问题,同 ...
- Python解析Yahoo的XML格式的天气预报数据
以下是Yahoo天气预报接口xml格式数据: <rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xm ...
- 直播-srs起步
srs简介 https://github.com/ossrs/srs/wiki/v2_CN_Home 原料 CentOS Linux release 7.2.1511 (Core) ffmpe ...
- PAT乙级-1063. 计算谱半径(20)
在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的n个复数空间的特征值{a1+b1i, ..., an+bni},它们的模为实部与虚部的平方和的开方,而&q ...
- C语言编程之道--读书笔记
C语言语法 const int nListNum =sizeof(aPrimeList)/sizeof(unsigned);//计算素数表里元素的个数 1:#define INM_MAX 32767 ...
- Web开发,浏览器通讯原理及流程那点事,你应该听说下
题外话: 最近园子里,关于.net门槛的文章风风火火,不过这类事情每过段时间就会出来一次,所以酱油都懒的打了. 当然个人也是有想法的,特别是这两天碰巧和一个三四年经验的java开发者呆在一起,对方说. ...
- 去除Vue在WebStorm中报命名空间的错误
Preferences -> Editor -> Inspections找到XML,把 Unbound XML namespace prefix的勾去掉
- elementUI-事件绑定Bug
刚开始使用elementUI的,慢慢的摸索.今天在绑定click事件的时候,在给el-某标签绑定.然后事件失效了.我就很纳闷,这怎么可能失效呢,当我给它的自己元素嵌套了一层div的时候,仍可是使用所以 ...
- linux --> 进程和线程
进程和线程 进程(process)和线程(thread)是操作系统的基本概念,下面用一个类比,来解释它们. 1. 计算机的核心是CPU,它承担了所有的计算任务.它就像一座工厂,时刻在运行. 2. 假定 ...
- docker 学习之一:docker 安装
核心概念1. 镜像是一个只读的模板类似于安装系统用到的那个iso文件我们通过镜像来完成各种应用的部署. 2. docker容器镜像类似于操作系统而容器类似于虚拟机本身.它可以被启动.开始.停止.删除等 ...