php 常用助手函数
1 <?php
2
3 if (!function_exists('bcSum')) {
4 function bcSum($scale, ...$args): string
5 {
6 $result = '0.00';
7 foreach ($args as $arg) {
8 $result = bcadd($result, $arg, $scale);
9 }
10 return $result;
11 }
12 }
13
14 if (!function_exists('yuanToWan')) {
15 function yuanToWan($yuan): float
16 {
17 return floatval(bcdiv($yuan, 10000, 6));
18 }
19 }
20
21
22 if (!function_exists('calCompleteDegree')) {
23 function calCompleteDegree($actual, $target, $scale = 4): float|null
24 {
25 if (bccomp($target, '0.00', $scale + 1) === 0) {
26 return null;
27 } elseif (bccomp($target, '0.00', $scale + 1) > 0) {
28 return round(bcdiv($actual, $target, $scale + 1), $scale);
29 } else {
30 return round(
31 bcdiv(
32 bcsub(bcmul(2, $target, $scale + 1), $actual, $scale + 1),
33 $target,
34 $scale + 1
35 ),
36 $scale
37 );
38 }
39 }
40 }
41
42 if (!function_exists('calPercentage')) {
43 function calPercentage($num1, $num2, $scale = 4): float|string
44 {
45 return bccomp($num2, '0.00', $scale + 1) !== 0
46 ? round(bcdiv($num1, $num2, $scale + 1), $scale) : '';
47 }
48 }
49
50 if (!function_exists('arrayKsort')) {
51 function arrayKsort(&$array): bool
52 {
53 if (!isset($array) || !is_array($array)) {
54 return false;
55 }
56
57 foreach ($array as $k => $v) {
58 unset($array[$k]);
59 $key = mb_convert_encoding($k, 'GBK', 'UTF-8');
60 $array[$key] = $v;
61 }
62 ksort($array);
63 foreach ($array as $k => $v) {
64 unset($array[$k]);
65 $key = mb_convert_encoding($k, 'UTF-8', 'GBK');
66 $array[$key] = $v;
67 }
68 return true;
69 }
70 }
71
72 if (!function_exists('arraySort')) {
73 function arraySort(&$array)
74 {
75 if (!isset($array) || !is_array($array)) {
76 return false;
77 }
78 $tmp = [];
79 foreach ($array as $k => $v) {
80 $array[$k] = mb_convert_encoding($v, "GBK", "UTF-8");
81 $tmp[$array[$k]] = $v;
82 }
83 sort($array);
84 foreach ($array as &$value) {
85 $value = $tmp[$value];
86 }
87 return true;
88 }
89 }
90
91 if (!function_exists('checkDateFormat')) {
92 function checkDateFormat($dateStr, $format = "Y-m-d"): bool
93 {
94 return date($format, strtotime($dateStr)) === $dateStr;
95 }
96 }
97
98 if (!function_exists('dateMonths')) {
99 /**
100 * @param $date1
101 * @param $date2
102 * @return int
103 */
104 function dateMonths($date1, $date2): int
105 {
106 $date1 = explode('-', $date1);
107
108 $date2 = explode('-', $date2);
109
110 return intval(abs(intval($date1[0]) - intval($date2[0])) * 12 + (abs(intval($date1[1]) - intval($date2[1])) + 1));
111 }
112 }
113
114 if (!function_exists('splitDateRange')) {
115 function splitDateRange($startDate, $endDate, int $step = 7): array
116 {
117 $result = [];
118 $step = $step < 1 ? 1 : $step - 1;
119 $startDate = date("Y-m-d", strtotime($startDate));
120 $endDate = date("Y-m-d", strtotime($endDate));
121
122 do {
123 $tmpEndDate = date('Y-m-d', strtotime($startDate. " +{$step} day"));
124 if (strtotime($tmpEndDate) >= strtotime($endDate)) {
125 $tmpEndDate = $endDate;
126 $result[] = [$startDate . " 00:00:00", $tmpEndDate . " 23:59:59"];
127 break;
128 } else {
129 $result[] = [$startDate . " 00:00:00", $tmpEndDate . " 23:59:59"];
130 $startDate = date('Y-m-d', strtotime($tmpEndDate. " +1 day"));
131 }
132 } while (true);
133
134 return $result;
135 }
136 }
137
138 if (!function_exists('showMonthRange')) {
139 function showMonthRange($start, $end): array
140 {
141 $end = date('Y-m', strtotime($end)); // 转换为月
142 $range = [];
143 $i = 0;
144 do {
145 $month = date('Y-m', strtotime($start . ' + ' . $i . ' month'));
146 $range[] = $month;
147 $i++;
148 } while ($month < $end);
149
150 return $range;
151 }
152 }
php 常用助手函数的更多相关文章
- ThinkPHP5 助手函数
对于ThinkPHP5.0以前的版本,助手函数全部是单字母函数,但到ThinkPHP5之后,使用如下函数来代替单字母函数: 最常用: /** * 实例化Model * @param string $n ...
- oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...
- php常用字符串函数小结
php内置了98个字符串函数(除了基于正则表达式的函数,正则表达式在此不在讨论范围),能够处理字符串中能遇到的每一个方面内容,本文对常用字符串函数进行简单的小结,主要包含以下8部分:1.确定字符串长度 ...
- php常用数组函数回顾一
数组对于程序开发来说是一个必不可少的工具,我根据网上的常用数组函数,结合个人的使用情况,进行数组系列的总结复习.里面当然不只是数组的基本用法,还有相似函数的不同用法的简单实例,力求用最简单的实例,记住 ...
- byte数据的常用操作函数[转发]
/// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...
- WordPress主题模板层次和常用模板函数
首页: home.php index.php 文章页: single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos. ...
- Python 常用string函数
Python 常用string函数 字符串中字符大小写的变换 1. str.lower() //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...
- MySQL之MySQL常用的函数方法
MySQL常用函数 本篇主要总结了一些在使用MySQL数据库中常用的函数,本篇大部分都是以实例作为讲解,如果有什么建议或者意见欢迎前来打扰. limit Select * from table ord ...
- Delphi常用系统函数总结
Delphi常用系统函数总结 字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S : ...
- iOS开发数据库篇—SQLite常用的函数
iOS开发数据库篇—SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 * ...
随机推荐
- chatGPT 桌面版安装教程
概述 标题党了,首先声明 ChatGPT 官方没有桌面版,目前市面上很多的桌面应用也在是浏览器上包了一层,而且大多做的比较粗糙,不太好用,所以都不太推荐. 作为一名骨灰级的程序员,ChatGPT 的重 ...
- 《Terraform 101 从入门到实践》 第四章 States状态管理
<Terraform 101 从入门到实践>这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看. 军书十二卷,卷卷有爷名. 为 ...
- rust 网上资料记录(自用)
最近要学嵌入式的rust,记录一些资料的url,方便自己查阅 书籍 常用的: rust圣经(不是权威指南那本)https://course.rs/ 中文 rust 参考手册 https://rustw ...
- STM32F1库函数初始化系列:串口DMA空闲接收_DMA发送
1 void USART3_Configuration(void) //串口3配置---S 2 { 3 DMA_InitTypeDef DMA_InitStructure; 4 USART_InitT ...
- imax6开发版_挂载NFS文件系统
挂载:mount -o vers=4 192.168.30.108:/home/penuel/linux_imax6/workdir /home/root/workdir 取消挂载:umount /h ...
- Jetson Nano更改软件源
Jetson Nano 采用的是 aarch64 架构的Ubuntu 18.04.2 LTS 系统 sudo vim /etc/apt/sources.list deb http://mirrors. ...
- aop中的名词解释
aop中的名词解释 aop spring Joinpoint(连接点) 目标对象中所有可以增强的方法叫做连接点 Pointcut(切入点) 目标对象中要增强的的方法 Advice(通知/增强) 增强的 ...
- 一键接入 ChatGPT,让你的QQ群变得热闹起来
目录 项目效果 安装环境 配置文件 启动Mirai 启动ChatGPT 项目效果 ChatGPT 的出现对于人们的生活和工作都有着重要的影响,作为一个强大的自然语言处理模型,可以理解和生成自然语言,所 ...
- Python (进阶 第二部)
目录 函数 闭包 匿名函数 迭代器 高阶函数 推导式 递归函数 函数 函数的定义: 功能( 包括一部分代码,实现某种功能,达成某个目的) 函数的特点: 函数可以反复调用 ,提高代码的复用性,提高开 ...
- Spark Streaming实时计算
spark批处理模式: receiver模式:接收数据流,负责数据的存储维护,缺点:数据维护复杂(可靠性,数据积压等),占用计算资源(core,memory被挤占) direct模式:数据源由三方组件 ...