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没有块级作用域(题外话:函数可以作为一个块级),所以我们经常使用闭包来模拟块级作用域,以避免变量或者函数因为名称相同而产生的冲突. 重点来了: 所以,如果我们把哪个变量或者函数放在全局作用域中,那 ...
随机推荐
- linux字符集介绍及解决中文乱码实战
字符集对应配置文件:/etc/sysconfig/i18n 先备份再修改: 备份:cp /etc/sysconfig/i18n /etc/sysconfig/i18n.oldboy.20150521 ...
- java多线程的常见例子
收藏 http://blog.csdn.net/wenzhi20102321/article/details/52524545
- python感悟
嗯,对于python我其实也是一知半解,比较擅长java,我就拿java和python进行比较一下吧 1,首先先说简单的程序运行时间问题,对于同等时间复杂度的测试程序,python虽然运行速度没有c快 ...
- border-image的拉伸和平铺
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Vue2.0 demo:百度百聘第三方web客户端
github地址:https://github.com/axel10/baipin_vue 项目地址:https://vcollection.org/baipin/ 官方的百度百聘客户端存在翻页时过滤 ...
- 特定场景下Ajax技术的使用
ajax介绍 jax技术包含了几种技术:javascript.xml.css.xstl.dom.xhtml和XMLHttpRequest七种技术,所以ajax就像是粘合剂把七种技术整合到一起,从而发挥 ...
- luogu3244 bzoj4011 HNOI2015 落忆枫音
这道题目题面真长,废话一堆. 另外:这大概是我第一道独立做出来的HNOI2011年以后的题目了吧.像我水平这么差的都能做出来,dalao您不妨试一下自己想想? 题目大意:给一个DAG,其中1号点没有入 ...
- 初识Selenium以及Selenium常用工具的简单介绍
一.为什么要学习自动化测试? 在互联网行业中敏捷开发小步快跑,快速迭代,测试环节中回归测试任务大繁琐,手工测试容易漏测,自动化测试可以提高测试效率保证产品质量. 二.学习的层次模型 1.单元自动化测试 ...
- Linux shell 基础
目录 一.shell脚本的基本使用 1.语言规范 2.变量 3.重定向(>,>>) 二.运算符和常用判断 1.比较运算符 2.逻辑运算符 3.常用判断 三.程序结构 1.分支(if语 ...
- Xcode9的xib只支持iOS7.0及以上版本
Xcode升级到9以后,对xib的最低编译版本有了限制,以前未指定版本的xib会报错,如下 遇到这个情况,根据错误提示很明显提示的是ib文件支持的最低版本是iOS7,所以我就将该xib的版本设为iOS ...