博客

  • PHP分割数组

    $new_arr = array_slice(explode(",",trim("1,2,3,4,5,6,7",",")),0,4);

  • PHP 获取当天 凌晨 时间戳常用代码

    echo strtotime(date('Y-m-d'));
     
    获取明天凌晨的时间戳
    代码:echo strtotime(date('Y-m-d',strtotime('+1 day')));
     
    附上测试代码:
    echo strtotime('2012-11-2');
    echo strtotime('2012-11-2 00:00:00');
    echo strtotime(date('Y-m-d')),'
    ';
    echo date('Y-m-d H:i:s',strtotime(date('Y-m-d')));
    echo strtotime(date('Y-m-d',strtotime('+1 day')));
    echo ( strtotime(date('Y-m-d',strtotime('+1 day'))) – strtotime(date('Y-m-d')) )/3600;
     
    其它参考代码:
     
    echo "一周后:".date("Y-m-d",strtotime("+1 week"));     
    echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds"));     
    echo "下个星期四:".date("Y-m-d",strtotime("next Thursday"));     
    echo "上个周一:".date("Y-m-d",strtotime("last Monday"));     
    echo "一个月前:".date("Y-m-d",strtotime("last month"));     
    echo "一个月后:".date("Y-m-d",strtotime("+1 month"));     
    echo "十年后:".date("Y-m-d",strtotime("+10 year"));

  • TP5 where多条件查询

    1. [html] view plain copy
    2. $rs=Db::name('manage')->where('type',$sotype)->where($type,'like',"%{$key}%")->order('id desc')->limit($limit)->page($page)->select();  
    3.  
    4. 引用:http://blog.csdn.net/u010447573/article/details/47420063
    5. Where 条件表达式格式为:
    6.  
    7. $map['字段名']  = array('表达式', '操作条件');
    8. 其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义:
    9.  
    10. ThinkPHP运算符  SQL运算符 对照表
    11. TP运算符    SQL运算符    例子    实际查询条件
    12. eq    =    $map['id'] = array('eq',100);    等效于:$map['id'] = 100;
    13. neq    !=    $map['id'] = array('neq',100);    id != 100
    14. gt    >    $map['id'] = array('gt',100);    id > 100
    15. egt    >=    $map['id'] = array('egt',100);    id >= 100
    16. lt    <    $map['id'] = array('lt',100);    id < 100
    17. elt    <=    $map['id'] = array('elt',100);    id <= 100
    18. like    like    $map<'username'> = array('like','Admin%');    username like 'Admin%'
    19. between    between and    $map['id'] = array('between','1,8');    id BETWEEN 1 AND 8
    20. not between    not between and    $map['id'] = array('not between','1,8');    id NOT BETWEEN 1 AND 8
    21. in    in    $map['id'] = array('in','1,5,8');    id in(1,5,8)
    22. not in    not in    $map['id'] = array('not in','1,5,8');    id not in(1,5,8)
    23. and(默认)    and    $map['id'] = array(array('gt',1),array('lt',10));    (id > 1) AND (id < 10)
    24. or    or    $map['id'] = array(array('gt',3),array('lt',10), 'or');    (id > 3) OR (id < 10)
    25. xor(异或)    xor    两个输入中只有一个是true时,结果为true,否则为false,例子略。    1 xor 1 = 0
    26. exp    综合表达式    $map['id'] = array('exp','in(1,3,8)');    $map['id'] = array('in','1,3,8');
    27. 补充说明
    28.  
    29.  SQL 一样,ThinkPHP运算符不区分大小写,eq  EQ 一样。
    30. between in 条件支持字符串或者数组,即下面两种写法是等效的:
    31. $map['id']  = array('not in','1,5,8');
    32. $map['id']  = array('not in',array('1','5','8'));
    33. exp 表达式
    34.  
    35. 上表中的 exp 不是一个运算符,而是一个综合表达式以支持更复杂的条件设置。exp 的操作条件不会被当成字符串,可以使用任何 SQL 支持的语法,包括使用函数和字段名称。
    36.  
    37. exp 不仅用于 where 条件,也可以用于数据更新,如:
    38.  
    39. $Dao = M("Article");
    40.  
    41. // 构建 save 的数据数组,文章点击数+1
    42. $data['id'] = 10;
    43. $data['counter'] = array('exp','counter+1');
    44.  
    45. // 根据条件保存修改的数据
    46. $User->save($data);
     
  • jQ 复选框 checkbox各种操作

    1、是否选中

    prop(name|properties|key,value|fn)
    获取在匹配的元素集中的第一个元素的属性值

    //选中复选框为true,没选中为false
    $("input[type=’checkbox’]").prop("checked");

    2、全选和全不选

    //选中所有页面上的复选框
    $("input[type=’checkbox’]").prop("checked", true);
    //通过函数来设置所有页面上的复选框被选中。
    $("input[type=’checkbox’]").prop("checked", function( i, val ) {
      return !val;
    });

    3、全禁用

    $("input[type=’checkbox’]").prop({
      checked: true
    });
    $("input[type=’checkbox’]").prop("checked", false);

    4、反选

    //针对整个checkbox
    $("input[name=’checkbox’]").each(function(){ 
    if($(this).attr("checked")) { 
        $(this).removeAttr("checked"); 

    else { 
        $(this).attr("checked","true"); 

    //针对是否存在的值
    $('input[type=”checkbox”][name^=”product_attribute”]').each(function(i,e) {
        if($.inArray($(e).val(),select_attribute_value_ids)>=0){
            $(e).prop("checked", true);
        }else {
            $(e).prop("checked", false);
        }
    })

    5、选中所有奇数

    $("input[name=’checkbox’]:odd").prop("checked", false);
    $("input[name=’checkbox’]:odd").attr("checked","true"); 

    6、选中所有偶数

    $("input[name=’checkbox’]:even").attr("checked","true"); 

    7、循环选中的box:

    $('input[name=”ids_val”][type=”checkbox”]:checked').each(function(){
    })
     

    ————————————————
    版权声明:本文为CSDN博主「大洋PHP」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/eddy23513/article/details/81030750

  • java正则表达式校验密码必须是包含大小写字母、数字、特殊符号的8位以上组合

    一、需求:密码必须是包含大写字母、小写字母、数字、特殊符号(不是字母,数字,下划线,汉字的字符)的8位以上组合

    二、方案:利用正则表达式来校验

    三、思路:排除法

      1、排除大写字母、小写字母、数字、特殊符号中1种组合、2种组合、3种组合,那么就只剩下4种都包含的组合了

      2、表达式为:^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$

      3、拆分解释:其中(2)-(6)运用了零宽断言、环视等正则功能

        (1)^匹配开头

        (2)(?![A-Za-z0-9]+$)匹配后面不全是(大写字母或小写字母或数字)的位置,排除了(大写字母、小写字母、数字)的1种2种3种组合

        (3)(?![a-z0-9\\W]+$)同理,排除了(小写字母、数字、特殊符号)的1种2种3种组合

        (4)(?![A-Za-z\\W]+$)同理,排除了(大写字母、小写字母、特殊符号)的1种2种3种组合

        (5)(?![A-Z0-9\\W]+$)同理,排除了(大写字母、数组、特殊符号)的1种2种3种组合

        (6)[a-zA-Z0-9\\W]匹配(小写字母或大写字母或数字或特殊符号)因为排除了上面的组合,所以就只剩下了4种都包含的组合了

        (7){8,}8位以上

        (8)$匹配字符串结尾

    四、代码:

    复制代码

    public class RegexTest {
    
        public static final String PW_PATTERN = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$";
    
        public static void main(String[] args) {
            String pw1 = "ABCDEFGHIG";
            String pw2 = "abcdefghig";
            String pw3 = "0123456789";
            String pw4 = "!@#$%^&*()";
            String pw5 = "ABCDEabcde";
            String pw6 = "ABCDE01234";
            String pw7 = "ABCDE!@#$%";
            String pw8 = "abcde01234";
            String pw9 = "abcde!@#$%";
            String pw10 = "01234!@#$%";
            String pw11 = "abcde01234!@#$%";
            String pw12 = "ABCDE01234!@#$%";
            String pw13 = "ABCDEabcde!@#$%";
            String pw14 = "ABCDEabcde01234";
            String pw15 = "Aa0!";
            //符合要求密码
            String pw16="ABCabc012!@#";
    
            System.out.println(pw1.matches(PW_PATTERN));
            System.out.println(pw2.matches(PW_PATTERN));
            System.out.println(pw3.matches(PW_PATTERN));
            System.out.println(pw4.matches(PW_PATTERN));
            System.out.println(pw5.matches(PW_PATTERN));
            System.out.println(pw6.matches(PW_PATTERN));
            System.out.println(pw7.matches(PW_PATTERN));
            System.out.println(pw8.matches(PW_PATTERN));
            System.out.println(pw9.matches(PW_PATTERN));
            System.out.println(pw10.matches(PW_PATTERN));
            System.out.println(pw11.matches(PW_PATTERN));
            System.out.println(pw12.matches(PW_PATTERN));
            System.out.println(pw13.matches(PW_PATTERN));
            System.out.println(pw14.matches(PW_PATTERN));
            System.out.println(pw15.matches(PW_PATTERN));
            System.out.println(pw16.matches(PW_PATTERN));
        }
    }

    复制代码

    输出结果除最后一行外全是false,即只有最后一个密码是符合要求的

     

    参考:正则表达式30分钟入门教程

  • 手机号码、电话号码正则表达式

    PHP版

    $check = '/^1[3456789]\d{9}$/';
          if(!preg_match($check, $mobile)){
          $res[‘res_code’] = 2;
          $res[‘res_msg’] = '手机号填写有误';
        return json($res);
      }

     

    js版

    手机号码正则表达式验证

    function checkPhone(){ 
        var phone = document.getElementById('phone').value;
        if(!(/^1[3456789]\d{9}$/.test(phone))){ 
            alert("手机号码有误,请重填");  
            return false; 
        } 
    }
    或者
    function checkPhone(){ 
        var phone = document.getElementById('phone').value;
        if(!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(phone))){ 
            alert("手机号码有误,请重填");  
            return false; 
        } 
    }

    固定电话号码正则表达式

    function checkTel(){
     var tel = document.getElementById('tel').value;
     if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel)){
      alert('固定电话有误,请重填');
      return false;
     }
    }

    身份证正则

    //身份证正则表达式(15位)
    isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
    //身份证正则表达式(18位)
    isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
    身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)

    其他​

    提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
    提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
    提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
    提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
    提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
    提取信息中的中国身份证号码:\d{18}|\d{15}
    提取信息中的整数:\d+
    提取信息中的浮点数(即小数):(-?\d*)\.?\d+
    提取信息中的任何数字 :(-?\d*)(\.\d+)?
    提取信息中的中文字符串:[\u4e00-\u9fa5]*
    提取信息中的双字节字符串 (汉字):[^\x00-\xff]*
    

    使用

    test()方法在字符串中查找是否存在指定的正则表达式,并返回布尔值,如果存在则返回true,否则返回false。

    var pattern = new RegExp('Box','i');
    var str = 'box';
    alert(pattern.test(str)); //true
    var pattern = /Box/i;
    var str = 'box';
    alert(pattern.test(str)); //true
    var pattern = /Box/i;
    var str = 'This is a box';
    alert(pattern.test(str)); //true

     

  • mysql 让清空表且自增的id重新从0开始的命令

    sql命令: 用于清空某表的数据 且让自增的id重新从0开始

    truncate table 表名
  • PHP 判断当前日期是否是法定节假日或者休息日

    1.代码如下

      $date = date("Ymd",time());

     $url = "http://api.goseek.cn/Tools/holiday?date=".$date;

     $res = file_get_contents($url);    //json格式,前端需要直接提供

     $res = json_decode($res,true);   //数组格式,方便后端判断  

    2.文档:http://api.goseek.cn/ 

    获取指定日期的节假日信息 

    1、接口地址:http://api.goseek.cn/Tools/holiday?date=数字日期,支持https协议。 
    2、返回数据:正常工作日对应结果为 0, 法定节假日对应结果为 1, 节假日调休补班对应的结果为 2,休息日对应结果为 3 
    3、节假日数据说明:本接口包含2017年起的中国法定节假日数据,数据来源国务院发布的公告,每年更新1次,确保数据最新 
    4、示例: 
    http://api.goseek.cn/Tools/holiday?date=20191007 
    https://api.goseek.cn/Tools/holiday?date=20191007 
    返回数据: 

    {"code":10000,"data":1}

    其他示例:

    http://api.goseek.cn/Tools/holiday?date=20191006
    法定节假日{"code":10000,"data":1}
    http://api.goseek.cn/Tools/holiday?date=20191007 
    法定节假日{"code":10000,"data":1}
    http://api.goseek.cn/Tools/holiday?date=20191008 
    工作日{"code":10000,"data":0}
    http://api.goseek.cn/Tools/holiday?date=20191012 
    补班{"code":10000,"data":2}
    http://api.goseek.cn/Tools/holiday?date=20191013
    双休{"code":10000,"data":3}
    http://api.goseek.cn/Tools/holiday?date=20191019
    双休{"code":10000,"data":3}  

     

     

     

     

  • 商城任务、学习任务之每日任务业务逻辑的实现

    /*     
         * 用戶每日任務記錄
         *  $data为數組
         * 必填參數
         * alias 别名 'SP', 'YP', 'TZ', 'PYQ', 'SCFX'
         * openid 用戶openID
         * fromid 任务来源id
         * table_name 任务来源表名
         * remark  备注  非必填
         * */
        
        public function zkSetTaskRows($data)
        {
            global $_W;
            global $_GPC;
            $snsSet = m("common")->getPluginset("sns");//sns配置信息
            //判断参数
            $alias = array('SP', 'YP', 'TZ', 'PYQ', 'SCFX');
            $aliasTotitle = array('SP'=>'观看任意学科视频', 'YP'=>'收听任意学科音频', 'TZ'=>'每日发布一个帖子', 'PYQ'=>'分享朋友或朋友圈', 'SCFX'=>'收藏或分享一个产品');
            if(!is_array($data) || $data[‘alias’] == ” || $data[‘openid’] == ” || $data[‘table_name’] == ” || $data[‘fromid’] == ''){
                return '参数缺失';
            }
            if(!in_array($data[‘alias’],$alias)){
                return '别名有误';
            }
            
            //是否開啟每日任務
            $is_open_day = $snsSet[‘is_open_day’];
            if(empty($is_open_day)){
                return '未开启每日任务';
            }
            //获取任务积分
            $task_rows = pdo_fetchall('select alias,credits  from ' . tablename('ewei_shop_sns_daily_task') . ' where uniacid=:uniacid and enabled=1 ', array(':uniacid' => $_W[‘uniacid’]));
            if(empty($task_rows)){
                return '未配置每日任务';
            }
            
            $credits = array();
            foreach($task_rows as $k => $v){
                $credits[$v[‘alias’]] = $v[‘credits’];
            }
            
            //检查当日是否已做任务
            //当日凌晨时间戳
            $day0 = strtotime(date('Y-m-d'));
            $daynow = time();
            $daily_task_rows = pdo_fetch('select id  from ' . tablename('ewei_shop_sns_daily_task_rows') . ' where uniacid=:uniacid and openid=:openid and alias=:alias and ( finishtime>:day0 and finishtime<:daynow ) ', array(':uniacid' => $_W[‘uniacid’], ‘:openid’ => $data[‘openid’], ‘:alias’ => $data[‘alias’], ':day0' => $day0, ':daynow' => $daynow));
            if(empty($daily_task_rows)){
                $data[‘credits’] = $credits[$data[‘alias’]];
                $data[‘finishtime’] = $daynow;
                $data[‘uniacid’] = $_W[‘uniacid’];
                $data[‘isget’] = 0;
                pdo_insert('ewei_shop_sns_daily_task_rows', $data);
                return pdo_insertid();
            }else{
                return '今日任务‘'.$aliasTotitle[$data[‘alias’]].'’已存在';
            }
        }

    /*     
         * 获取每日任务进度
         * $openid 用户openID
         * */
        
        public function zkGetDailyTask($openid)
        {
            global $_W;
            global $_GPC;
            if(empty($openid)){
                return '';
            }
            //获取任务列表
            $daily_task = pdo_fetchall('select alias,link,title,displayorder,credits  from ' . tablename('ewei_shop_sns_daily_task') . ' where uniacid=:uniacid and enabled = 1 order by displayorder desc', array(':uniacid' => $_W[‘uniacid’]));
            //获取用户今日完成状态
            $day0 = strtotime(date('Y-m-d'));
            $daynow = time();
            $daily_task_rows = pdo_fetchall('select id,alias,isget,credits  from ' . tablename('ewei_shop_sns_daily_task_rows') . ' where uniacid=:uniacid and openid=:openid and ( finishtime>:day0 and finishtime<:daynow )  order by id ', array(':uniacid' => $_W[‘uniacid’],':openid' => $openid, ':day0' => $day0, ':daynow' => $daynow));
            //封装今日完成任务数据
            $ids = array();//完成任务的id集合
            $isgets = array();//已完成任务是否领取集合
            $alias = array();//任务别名集合
            $credits = array();//任务积分集合
            foreach($daily_task_rows as $k=>$v){
                $ids[$v[‘alias’]] = $v[‘id’];
                $isgets[$v[‘alias’]] = $v[‘isget’];
                $alias[$v[‘alias’]] = $v[‘alias’];
                $credits[$v[‘alias’]] = $v[‘credits’];
            }
            $taskData = array();//签到页面任务数据
            $isfinish = 0;
            foreach($daily_task as $key => $val){
                $taskData[$val[‘alias’]][‘title’] = $val[‘title’];
                $taskData[$val[‘alias’]][‘credits’] = $credits[$val[‘alias’]];
                $taskData[$val[‘alias’]][‘id’] = $ids[$val[‘alias’]];
                if(in_array($val[‘alias’],$alias)){
                    $taskData[$val[‘alias’]][‘link’] = 'javascript:;';
                    if($isgets[$val[‘alias’]]==0){//未领取
                        $isfinish ++ ;
                        $taskData[$val[‘alias’]][‘bottontxt’] = '领取';
                    }else{//已领取
                        $taskData[$val[‘alias’]][‘bottontxt’] = '已领取';
                    }
                }else{//未完成
                    if(empty($taskData[$val[‘alias’]][‘credits’])){
                        $taskData[$val[‘alias’]][‘credits’] = $val[‘credits’];
                    }
                    $taskData[$val[‘alias’]][‘bottontxt’] = '去完成';
                    $taskData[$val[‘alias’]][‘link’] = $val[‘link’];
                }
            }
            
            
            $res = array();
            $res[‘taskData’] = $taskData;
            $res[‘isfinish’] = $isfinish;
            
            return $res;
        }
        
        
        /*     
         * 领取每日任务积分
         * $openid 用户openID
         * $id 待领取积分的任务记录id
         * */
        
        public function zkSetTaskCredits($openid,$id)
        {
            global $_W;
            global $_GPC;
            $id = intval($id);
            if(empty($openid) || empty($id)){
                return '参数缺失';
            }
            $aliasTotitle = array('SP'=>'观看任意学科视频', 'YP'=>'收听任意学科音频', 'TZ'=>'每日发布一个帖子', 'PYQ'=>'分享朋友或朋友圈', 'SCFX'=>'收藏或分享一个产品');
            
            $day0 = strtotime(date('Y-m-d'));
            $daynow = time();
            $daily_task_row = pdo_fetch('select id,alias,isget,credits,openid  from ' . tablename('ewei_shop_sns_daily_task_rows') . ' where uniacid=:uniacid and openid=:openid and id=:id and ( finishtime>:day0 and finishtime<:daynow ) limit 1 ', array(':uniacid' => $_W[‘uniacid’],':openid' => $openid, ':day0' => $day0, ':daynow' => $daynow, ':id' => $id));
            if(!empty($daily_task_row)){
                if($daily_task_row[‘isget’]==0){
                    $credit = intval($daily_task_row[‘credits’]);
                    $log = '(来源:'.$aliasTotitle[$daily_task_row[‘alias’]].')';
                    //发放积分
                    $this->zkSetCredits($openid,$credit,'credit1',$log);
                    //更新领取状态
                    pdo_update('ewei_shop_sns_daily_task_rows', array('isget' => 1), array('id' => $daily_task_row[‘id’]));
                    
                    return 1;
                }else{
                    return '已领取';
                }
                
            }else{
                return '无奖励可领取';
            }
        }

  • 按天分组显示足迹或学习记录逻辑(可控是否分页)

    /*     
         * 获取学习记录  SP YP
         * $data 为數組
         * 必填參數
         * type 类型 'SP', 'YP'
         * openid 用戶openID
         * page 页码
         * psize 页数量
         * limit  限制条数  大于 0则不分页
         * */
        
        public function zkGetStudyRecord($data)
        {
            global $_W;
            global $_GPC;
            $type = array('SP', 'YP');
            if(!is_array($data) || $data[‘type’] == ” || $data[‘openid’] == ''){
                return '参数缺失';
            }
            if(!in_array($data[‘type’],$type)){
                return '类型有误';
            }
                
            $condition = ' and sr.uniacid=:uniacid and sr.type = :type and sr.openid = :openid ';
            $conditiontotal = ' and uniacid=:uniacid and type = :type and openid = :openid ';
            $params=array(':uniacid' => $_W[‘uniacid’],’:type’ => $data[‘type’],’:openid’ => $data[‘openid’]);
            if(intval($data[‘limit’])>0){//不分页
                $limit = (intval($data[‘limit’]) – 20) < 0 ? 20 : intval($data['limit']);
                $list = pdo_fetchall('SELECT sr.*,ip.title,ip.desc,ip.thumb,ip.id ipid FROM ' . tablename('ewei_shop_sns_study_record') . ' sr ' . ' left join ' . tablename('ewei_shop_ip_story') . ' ip on sr.fromid = ip.id ' .  (' WHERE 1 ' . $condition . '  ORDER BY sr.updatetime DESC limit ') . $limit , $params);
                $total = pdo_fetchcolumn('SELECT count(1) FROM ' . tablename('ewei_shop_sns_study_record') . (' WHERE 1 ' . $conditiontotal), $params);
                $total = (intval($total) – $limit) > 0 ? $limit : intval($total);
            }else{//分页
                $pindex = max(1, intval($data[‘page’]));
                $psize = (intval($data[‘psize’]) – 5) < 0 ? 5 : intval($data['psize']);
                if($pindex>1){
                    $begin = ($pindex – 1) * $psize – 1;
                    $psize2 = $psize + 1;
                }else{
                    $begin = 0;
                    $psize2 = $psize;
                }
                $list = pdo_fetchall('SELECT sr.*,ip.title,ip.desc,ip.thumb,ip.id ipid  FROM ' . tablename('ewei_shop_sns_study_record') . ' sr ' . ' left join ' . tablename('ewei_shop_ip_story') . ' ip on sr.fromid = ip.id ' .  (' WHERE 1 ' . $condition . '  ORDER BY sr.updatetime DESC limit ') . $begin . ',' . $psize2, $params);
                $total = pdo_fetchcolumn('SELECT count(1) FROM ' . tablename('ewei_shop_sns_study_record') . (' WHERE 1 ' . $conditiontotal), $params);
            }
            $isoneday = 0;
            $ishavedata = 1;
            if((intval($data[‘limit’]) <= 0) && ($pindex > 1)){
                if(!empty($list[1])){
                    $day = $this->diffBetweenTwoDays(date('Y-m-d',$list[1][‘updatetime’]),date(‘Y-m-d’,$list[0][‘updatetime’]));
                    if($day == 0){
                        $isoneday = 1;
                    }
                }else{
                    $ishavedata = 0;
                }
            }
            if(count($list)>1){
                $pageData = array();
                foreach($list as $k => $v){
                    if($k == 0 && $pindex>1){
                        continue;
                    }
                    $kk = date('Y年m月d日',$v[‘updatetime’]);
                    $pageDate[$kk][‘day’] = $kk;
                    if(!is_array($pageDate[$kk][‘son’])){
                        $pageDate[$kk][‘son’] = array();
                    }
                    $sonData = array();
                    $sonData[‘id’] = $v[‘id’];
                    $sonData[‘title’] = $v[‘title’];
                    $sonData[‘desc’] = $v[‘desc’];
                    $sonData[‘thumb’] = tomedia($v[‘thumb’]);
                    $sonData[‘ipid’] = $v[‘ipid’];
                    //将子数组加入分组数组
                    array_push($pageDate[$kk][‘son’],$sonData);
                }
            }
            
            $res = array();
            $res[‘pindex’] = $pindex;
            $res[‘psize’] = $psize;
            $res[‘isoneday’] = $isoneday;
            $res[‘ishavedata’] = $ishavedata;
            $res[‘total’] = $total;
            $res[‘limit’] = $limit;
            $res[‘pageDate’] = $pageDate;
            
            return $res;
        }