srcker/helper

常用函数库

1.2.1 2024-09-22 14:48 UTC

This package is auto-updated.

Last update: 2024-09-22 14:52:05 UTC


README

常用函数库

安装

composer require srcker/helper

use srcker/helper/Time; // 时间工具
use srcker/helper/Str; // 字符串工具
use srcker/helper/Validate; // 常用格式验证
use srcker/helper/Desensitize; // 数据脱敏
use srcker/helper/IdCard; // 身份证工具

使用

时间工具

use srcker\helper\Time;

// 测试今日的开始和结束时间戳
echo "今日开始时间戳: " . Time::today()[0] . "\n"; 
echo "今日结束时间戳: " . Time::today()[1] . "\n";
// 今日开始时间戳: 1695667200
// 今日结束时间戳: 1695753599

// 测试昨日的开始和结束时间戳
echo "昨日开始时间戳: " . Time::yesterday()[0] . "\n";
echo "昨日结束时间戳: " . Time::yesterday()[1] . "\n";
// 昨日开始时间戳: 1695580800
// 昨日结束时间戳: 1695667199

// 测试本周的开始和结束时间戳
echo "本周开始时间戳: " . Time::week()[0] . "\n";
echo "本周结束时间戳: " . Time::week()[1] . "\n";
// 本周开始时间戳: 1695235200
// 本周结束时间戳: 1695753599

// 测试上周的开始和结束时间戳
echo "上周开始时间戳: " . Time::lastWeek()[0] . "\n";
echo "上周结束时间戳: " . Time::lastWeek()[1] . "\n";
// 上周开始时间戳: 1694630400
// 上周结束时间戳: 1695235199

// 测试本月的开始和结束时间戳
echo "本月开始时间戳: " . Time::month()[0] . "\n";
echo "本月结束时间戳: " . Time::month()[1] . "\n";
// 本月开始时间戳: 1693526400
// 本月结束时间戳: 1696118399

// 测试上个月的开始和结束时间戳
echo "上个月开始时间戳: " . Time::lastMonth()[0] . "\n";
echo "上个月结束时间戳: " . Time::lastMonth()[1] . "\n";
// 上个月开始时间戳: 1690848000
// 上个月结束时间戳: 1693526399

// 测试今年的开始和结束时间戳
echo "今年开始时间戳: " . Time::year()[0] . "\n";
echo "今年结束时间戳: " . Time::year()[1] . "\n";
// 今年开始时间戳: 1672531200
// 今年结束时间戳: 1704067199

// 测试去年开始和结束的时间戳
echo "去年开始时间戳: " . Time::lastYear()[0] . "\n";
echo "去年结束时间戳: " . Time::lastYear()[1] . "\n";
// 去年开始时间戳: 1640995200
// 去年结束时间戳: 1672531199

// 测试几天前到现在的时间戳
echo "三天前零点时间戳到现在: " . Time::dayToNow(3)[0] . "\n";
echo "三天前到现在结束时间戳: " . Time::dayToNow(3)[1] . "\n";
// 三天前零点时间戳到现在: 1695408000
// 三天前到现在结束时间戳: 1695732590

// 测试几天前的时间戳
echo "五天前时间戳: " . Time::daysAgo(5) . "\n";
// 五天前时间戳: 1695402590

// 测试几天后的时间戳
echo "两天后时间戳: " . Time::daysAfter(2) . "\n";
// 两天后时间戳: 1695912590

// 测试友好时间显示
$time = time() - 3600; // 一小时前的时间戳
echo "友好时间显示: " . Time::friendlyDate($time) . "\n";
// 友好时间显示: 1小时前

// 测试获取当前毫秒
echo "当前毫秒: " . Time::msectime() . "\n";
// 当前毫秒: 1695732590612

字符串函数

use srcker/helper/Str

/**
 * 随机生成字符串
 * @param int $length 长度
 * @param false $isNumber 是否为纯数字
 */
Str::random($length = 16,$isNumber = false)

数据脱敏

use srcker/helper/Desensitize
// 测试示例

echo "中文姓名: " . Desensitize::name('张三丰'); 
// 预期输出: 张**

echo "身份证号: " . Desensitize::idCard('11010519491231002X'); 
// 预期输出: 110************02X

echo "座机号: " . Desensitize::custom('010-12345678', 4, 6); 
// 预期输出: 0101******78

echo "手机号: " . Desensitize::mobile('13812345678'); 
// 预期输出: 138****5678

echo "地址: " . Desensitize::custom('北京市海淀区中关村', 3, 4); 
// 预期输出: 北京市****

echo "电子邮件: " . Desensitize::email('example@example.com'); 
// 预期输出: e******e@example.com

echo "密码: " . Desensitize::password('mysecretpassword'); 
// 预期输出: *******

echo "普通车牌: " . Desensitize::carLicense('粤B12345'); 
// 预期输出: 粤B****5

echo "新能源车牌: " . Desensitize::carLicense('粤BD12345'); 
// 预期输出: 粤BD***45

echo "银行卡号: " . Desensitize::bankCard('6228481234567890123'); 
// 预期输出: 622848******90123
  • 身份证工具类
use srcker\helper\IdCard;

// 测试身份证号码合法性
$idCardNumber = "11010519491231002X";

echo "身份证号: " . $idCardNumber . "\n";
echo "是否合法: " . (IdCard::isValid($idCardNumber) ? '合法' : '不合法') . "\n"; // 输出: 合法

// 测试获取生日
echo "生日: " . IdCard::getBirthday($idCardNumber) . "\n"; // 输出: 1949-12-31

// 测试获取年龄
echo "年龄: " . IdCard::getAge($idCardNumber) . "\n"; // 输出: 根据当前日期计算出的年龄

// 测试获取出生年份
echo "出生年份: " . IdCard::getYear($idCardNumber) . "\n"; // 输出: 1949

// 测试获取出生月份
echo "出生月份: " . IdCard::getMonth($idCardNumber) . "\n"; // 输出: 12

// 测试获取出生日期的天
echo "出生日期的天: " . IdCard::getDay($idCardNumber) . "\n"; // 输出: 31

// 测试获取性别
echo "性别: " . (IdCard::getGender($idCardNumber) == 1 ? '' : '') . "\n"; // 输出: 男

// 测试获取地区码
echo "地区码: " . IdCard::getArea($idCardNumber) . "\n"; // 输出: 110105