获取日期范围内的日期
/**
* @description: 获取一个日期范围内的日期
* @author Quan
* @param {interval:日期范围,type:取值类型,-:获取之前日期;+:获取之后的日期}
* @return:
*/
protected function getDateInterval(int $interval, string $type): array
{
$dateArr = [];
for ($i = $interval - 1; $i >= 0; $i--) {
array_push($dateArr, date('Y-m-d', strtotime("{$type}{$i} day")));
}
if ($type == '+') $dateArr = array_reverse($dateArr);
return $dateArr;
}
毫秒时间戳
/**
* @description: 获取毫秒时间戳
* @Author: Quan
* @param {*}
* @return {*}
*/
public static function millisecond(): float
{
[$usec, $sec] = explode(' ', microtime());
return (float)sprintf('%.0f', (floatval($usec) + floatval($sec)) * 1000);
}
生成对象(对象含数组字符串形式和数组形式)
/**
* @description: 生成对象(对象含数组字符串形式和数组形式)
* @Author: Quan
* @param {array}$arr
* @return object{arr,arrStr}
*/
static public function arrTranObj(array $arr): object
{
$obj = new stdClass;
$obj->arr = $arr;
$obj->arrStr = implode(',', $obj->arr);
return $obj;
}
字符串数字排序处理
字段后+0 可以将MySQL字符串字段按数值排序 注意:orderByRaw是laravel的原生排序方法
/**
* @description: 字符串数字排序处理
* @Author: Quan
* @param {*}
* @return {*}
*/
public static function orderByBlock(object $sql, string $sortBy, string $sortOrder, array $numberStr = []): object
{
if (in_array($sortBy, $numberStr)) {
$sortBy = $sortBy . '+0'; //数字字符串排序处理
return $sql->orderByRaw("$sortBy $sortOrder");
}else{
return $sql->orderBy($sortBy,$sortOrder);
}
}
发请求
/**
* @description: 发请求
* @Author: Quan
* @param {*}
* @return {*}
*/
protected function requestSend(string $method = 'GET', string $url, array $params, array $header = []): array
{
$requestBody = http_build_query($params);
$contentLen = mb_strlen($requestBody);
$headerStr = "Content-Length: {$contentLen}\r\n";
if (count($header) > 0) {
foreach ($header as $k => $v) {
$headerStr .= "{$k}: {$v}\r\n";
}
}
$http = [
'method' => $method,
'header' => $headerStr,
'content' => $requestBody
];
$context = stream_context_create([
'http' => $http
]);
$response = file_get_contents($url, false, $context);
$resArr = json_decode($response, true);
if ($resArr['code'] !== 200) {
throw new Exception($resArr['msg'], $resArr['code']);
}
return $resArr;
}
驼峰字符串
/**
* @description: 驼峰命名转下划线命名
* @param {type}
* @return {type}
*/
public function uncamelize(string $camelCaps, string $separator = '_'): string
{
return strtolower(preg_replace('/([a-z])([A-Z])/', "$1" . $separator .