PHP--自动回调接口,分批修改数据
/**
* 修复 a表 生日格式问题
* @author qin
*/
public function update_birthday_one()
{
$this->load->model('a');
$datearr = @addslashes_array($this->input->get());
$page_cur = empty($datearr['page'])?:$datearr['page'];
$nextpage = $page_cur+;
$page_num = ; // 5000左右比较好
$limitmin = $page_num * $page_cur;
$limitsql = "limit $limitmin,$page_num"; // 查出xw_baoxian_spread_baoxian的生日
$sql = "select id,birthday,age from a where age=0".$limitsql;
$birth_data2 = $this->a->getwhere2($sql);
if(empty($birth_data2['data'])){
echo 'OVER';
exit;
}
foreach ($birth_data2['data'] as $key => $val) {
$id = $val['id'];
$birthday = $val['birthday'];
$age = $val['age'];// 去除生日中的-和/符号
$birthday = str_replace('/', '', str_replace('-', '', $birthday));
// 把生日转换成时间戳
$birthday_in = ;
if(!empty($birthday)){
$birthday_in = date('Y-m-d',strtotime($birthday));
}
//获取年龄
$age= $this->birthdaytoage($birthday_in);
// 更新生日和生日的时间戳
$this->a->update($id, ['age' => $age]);
}
$url = "https://xxx.com/test/update_birthday_one.html?page=$nextpage";
echo '<script>url="'.$url.'";window.location.href=url;</script>';
}
/**
* 年龄转生日(模糊结果)
* @parameter int age(年龄)
* @parameter string symbol(分隔符)
* @return string (yyyy*mm*dd)
*/
private function agetobirthday($age,$symbol='-')
{
$age = $age==0?25:$age;
$nowyear = date("Y",time());
$year = $nowyear-$age;
$monthArr = [];
for ($i=1;$i<13;$i++){
$monthArr[] = $i<10?'0'.$i:$i;
}
$dayArr = [];
for ($i=1;$i<29;$i++){
$dayArr[] = $i<10?'0'.$i:$i;
}
$month_key = array_rand($monthArr,1);
$month = $monthArr[$month_key];
$date_tmp_stamp = strtotime($year.'-'.$month);
$day = '';
if( $month=='02' && date("t",$date_tmp_stamp)=='29' ) {
$dayArr = array_merge($dayArr,['29']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else if ( $month=='02' && date("t",$date_tmp_stamp)=='28' ){
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else if( in_array($month, ['01','03','05','07','08','10','12']) ) {
$dayArr = array_merge($dayArr,['29','30','31']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else {
$dayArr = array_merge($dayArr,['29','30']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
}
return $year.$symbol.$month.$symbol.$day;
} /**
* 生日转年龄
* @parameter birthday:yyyy-mm-dd
* @return str`
*/
private function birthdaytoage($birthday)
{
$age = 0;
$year = date('Y',strtotime($birthday));
$month = date('m',strtotime($birthday));
$day = date('d',strtotime($birthday)); $now_year = date('Y');
$now_month = date('m');
$now_day = date('d'); if ($now_year > $year) {
$age = $now_year - $year - 1;
if ($now_month > $month) {
$age++;
} else if ($now_month == $month) {
if ($now_day >= $day) {
$age++;
}
}
}
if(empty($birthday)){
$age = 26;
}
return $age;
}
PHP--自动回调接口,分批修改数据的更多相关文章
- Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据
一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...
- sql server编写archive通用模板脚本实现自动分批删除数据
博主做过比较多项目的archive脚本编写,对于这种删除数据的脚本开发,肯定是一开始的话用最简单的一个delete语句,然后由于部分表数据量比较大啊,索引比较多啊,会发现删除数据很慢而且影响系统的正常 ...
- charles_01_打断点修改接口请求&返回数据
前言 测试过程中,为了模拟某场景测试,经常需要修改接口请求或者返回数据.可通过抓包工具打断点,实现模拟测试场景.常用的抓包工具charles和fiddler均可打断点mock数据.由于小编安装了cha ...
- Vue学习笔记十三:Vue+Bootstrap+vue-resource从接口获取数据库数据
目录 前言 SpringBoot提供后端接口 Entity类 JPA操作接口 配置文件 数据库表自动映射,添加数据 写提供数据的接口 跨域问题 前端修改 效果图 待续 前言 Vue学习笔记九的列表案例 ...
- 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件
博客地址 : http://blog.csdn.net/shulianghan/article/details/41520569 代码下载 : -- GitHub : https://github.c ...
- vue 修改数据界面没有及时更新nextTick
使用场景:有些时候,我们使用vue修改了一些数据,但是页面上的DOM还没有更新,这个时候我们就需要使用到nextTick. vm.$nextTick( [callback] ) 说明: 将回调延迟到下 ...
- mybatis之DAO层自动实现接口
* 使用mybatis举例,使用DAO接口方式实现* 不需要针对接口去编写具体的实现类代码,编写映射XML文件,直接拿来使用即可.* 1.导入jar包:mybatis和mysql-connector* ...
- drf07 过滤 排序 分页 异常处理 自动生成接口文档
4. 过滤Filtering 对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持. pip install django-filter 在配置文件sett ...
- Django rest_framework 自动生成接口文档
自动生成接口文档 REST framework可以自动帮助我们生成接口文档. 接口文档以网页的方式呈现. 自动接口文档能生成的是继承自APIView及其子类的视图. 1. 安装依赖 REST fram ...
随机推荐
- Map按键排序(sort by key)
1.需求:已知有如下map,要求按照key倒序排列遍历. Map<String, Integer> map = new HashMap<>(); map.put("1 ...
- E: Sub-process /usr/bin/dpkg returned an error code (1)解决办法
解决方法: 先将info文件夹更名 sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk 新建一个新的info文件夹 sudo mkdir /var/lib ...
- 命令学习_IPCONFIG: DNS cache操作
IPCONFIG: DNS cache操作 Windows会将解析到的DNS信息缓存,这个机制可以加速重复的域名访问.从DNS Server返回的DNS Response消息中带有"Time ...
- KVM桥接网络
1.什么是桥接网络 桥接网络:是指直接连接物理网络 桥接与NAT的区别:NAT是通过共享主机ip的方式进行上网,在你本地局域网内,别人是无法看到的:而桥接网络,是虚拟机通过dhcp的方式获取一个ip地 ...
- <jquery>基本的模态框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- SQL Serve 临时表
SQL Server 支持临时表.临时表就是那些名称以井号 (#) 开头的表.如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表.临时表不存储在当前数据库内,而是存储在系统数据 ...
- 18-3-bind
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- eclipse-帮助文档
Eclipse开发环境配置 1. java环境 安装 本系统使用java6开发,老师使用1.6.0 _45版本开发,如下图所示: “开发工具”目录提供了1.6.0 _45版本32位和6 ...
- 【分块】P4135 作诗
分块太暴力惹... 没做出来.看了题解qaq 分析: 两头$\sqrt{n}$暴力维护 预处理ans[i][j],sum[i][j] sum[i][j]是一个前缀和,前i块值为j的数量 ans[i][ ...
- JAVA数据结构之数组
接下来的几篇博文会在最近仔细研读数据结构与算法的书籍后会摘录一些要点和总结一些自己的心得体会,帮助大家更深入地理解java中的数据结构和一些基本的算法,同时巩固自己数据结构和算法这些最基础的计算机知识 ...