$new_arr = array_slice(explode(",",trim("1,2,3,4,5,6,7",",")),0,4);
作者: Mr.Li
-
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多条件查询
-
[html] view plain copy -
$rs=Db::name('manage')->where('type',$sotype)->where($type,'like',"%{$key}%")->order('id desc')->limit($limit)->page($page)->select(); -
引用:http://blog.csdn.net/u010447573/article/details/47420063 -
Where 条件表达式格式为: -
$map['字段名'] = array('表达式', '操作条件'); -
其中 $map 是一个普通的数组变量,可以根据自己需求而命名。上述格式中的表达式实际是运算符的意义: -
ThinkPHP运算符 与 SQL运算符 对照表 -
TP运算符 SQL运算符 例子 实际查询条件 -
eq = $map['id'] = array('eq',100); 等效于:$map['id'] = 100; -
neq != $map['id'] = array('neq',100); id != 100 -
gt > $map['id'] = array('gt',100); id > 100 -
egt >= $map['id'] = array('egt',100); id >= 100 -
lt < $map['id'] = array('lt',100); id < 100 -
elt <= $map['id'] = array('elt',100); id <= 100 -
like like $map<'username'> = array('like','Admin%'); username like 'Admin%' -
between between and $map['id'] = array('between','1,8'); id BETWEEN 1 AND 8 -
not between not between and $map['id'] = array('not between','1,8'); id NOT BETWEEN 1 AND 8 -
in in $map['id'] = array('in','1,5,8'); id in(1,5,8) -
not in not in $map['id'] = array('not in','1,5,8'); id not in(1,5,8) -
and(默认) and $map['id'] = array(array('gt',1),array('lt',10)); (id > 1) AND (id < 10) -
or or $map['id'] = array(array('gt',3),array('lt',10), 'or'); (id > 3) OR (id < 10) -
xor(异或) xor 两个输入中只有一个是true时,结果为true,否则为false,例子略。 1 xor 1 = 0 -
exp 综合表达式 $map['id'] = array('exp','in(1,3,8)'); $map['id'] = array('in','1,3,8'); -
补充说明 -
同 SQL 一样,ThinkPHP运算符不区分大小写,eq 与 EQ 一样。 -
between、 in 条件支持字符串或者数组,即下面两种写法是等效的: -
$map['id'] = array('not in','1,5,8'); -
$map['id'] = array('not in',array('1','5','8')); -
exp 表达式 -
上表中的 exp 不是一个运算符,而是一个综合表达式以支持更复杂的条件设置。exp 的操作条件不会被当成字符串,可以使用任何 SQL 支持的语法,包括使用函数和字段名称。 -
exp 不仅用于 where 条件,也可以用于数据更新,如: -
$Dao = M("Article"); -
// 构建 save 的数据数组,文章点击数+1 -
$data['id'] = 10; -
$data['counter'] = array('exp','counter+1'); -
// 根据条件保存修改的数据 -
$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,即只有最后一个密码是符合要求的
-
手机号码、电话号码正则表达式
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); //数组格式,方便后端判断
获取指定日期的节假日信息
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;
}
