最近用的的一些小方法
程序员文章站
2022-05-19 18:56:53
...
1.获取最近七天内的日期
function get_weeks($time = '', $format='Y-m-d'){
$time = $time != '' ? $time : time();
//组合数据
$date = [];
for ($i=1; $i<=7; $i++){
$date[$i] = date($format ,strtotime( '+' . $i-7 .' days', $time));
}
return $date;
}
2、编辑器里面的图片加域名替换
function replacePicUrl($content = null, $strUrl = null) {
if ($strUrl) {
//提取图片路径的src的正则表达式 并把结果存入$matches中
preg_match_all("/<img(.*)src=\"([^\"]+)\"[^>]+>/isU",$content,$matches);
if(!empty($matches)) {
//注意,上面的正则表达式说明src的值是放在数组的第三个中
$img = $matches[2];
}else {
$img = "";
}
if (!empty($img)) {
$patterns= array();
$replacements = array();
foreach($img as $imgItem){
$final_imgUrl = $strUrl.$imgItem;
$replacements[] = $final_imgUrl;
$img_new = "/".preg_replace("/\//i","\/",$imgItem)."/";
$patterns[] = $img_new;
}
//让数组按照key来排序
ksort($patterns);
ksort($replacements);
//替换内容
$vote_content = preg_replace($patterns, $replacements, $content);
return $vote_content;
}else {
return $content;
}
} else {
return $content;
}
}
3.获取订单编号
function order_num($table,$field){
do{
$order_no= date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}while(db($table)->where([$field=>$order_no])->find());
return $order_no;
}
4.获取网站目录下apk的版本
// 扫描根目录下的apk文件,拿到最新的apk版本
function getApkVersion()
{
$patch=$_SERVER['DOCUMENT_ROOT'];//获取网站根目录
$files = scandir($patch);
$version = 10;
$fileName = '';
foreach ($files as $file) {
$match = array();
// var_dump($file);
if (preg_match("/(\d+)\.(\d+)\.(\d+)\.apk/i", $file, $match)) {
if ($match[1] * 100 + $match[2]* 10+$match[3] > $version) {
$version = $match[1] * 100 + $match[2]* 10+$match[3];
$fileName = $match[0];
}
$version = max($match[1] * 100 + $match[2]* 10+$match[3], $version);
}
}
return array(
'version' => $version , 'file_name' => $fileName
);
}
5.获取年龄
function birthday2($birthday){
list($year,$month,$day) = explode("-",$birthday);
$year_diff = date("Y") - $year;
$month_diff = date("m") - $month;
$day_diff = date("d") - $day;
if ($day_diff < 0 || $month_diff < 0)
$year_diff--;
if($year_diff<0){
$year_diff=0;
}
return $year_diff;
}
6,计算两个日期相隔多少天
/*
*function:计算两个日期相隔多少年,多少月,多少天
*param string $date1[格式如:2011-11-5]
*param string $date2[格式如:2012-12-01]
*return array array('年','月','日');
*/
function diffDate($date1,$date2){
if(strtotime($date1)>strtotime($date2)){
$tmp=$date2;
$date2=$date1;
$date1=$tmp;
}
list($Y1,$m1)=explode('-',$date1);
list($Y2,$m2)=explode('-',$date2);
$Y=$Y2-$Y1;
$m=$m2-$m1;
return $Y;
}
7、排序
$arr=array(
array('title'=>2,'count'=>3),
array('title'=>2,'count'=>4),
array('title'=>2,'count'=>1),
)
#根据count 排序
$count=array_column($arr,'count');
array_multisort($count,SORT_DESC,$arr);
return $arr;
上一篇: 收集的一些小方法
下一篇: 初恋分手后复合的概率高吗