TimeHelper简单快捷PHP日期时间助手类库使用详解
TimeHelper
是一个简单易用的PHP时间日期助手类库
,可以快速实现常用的时间日期操作,比如获取指定时间的秒数,获取友好的时间格式,判断时间范围,计算两个时间相差值,返回N小时/天/星期/月/年前或者后的时间戳等等
特性
- 简单易用: 不依赖任何扩展,
开箱即用
- 化繁为简: 所有方法都可以传入
任意类型的时间日期格式
或时间戳
- 快捷高效: 所有操作只需要
一个静态方法
即可完成 - 长期维护: 作者为自由职业者,保证项目的
长期稳定
和持续更新
🚀安装
通过Composer导入类库
composer require zjkal/time-helper
🌈使用文档
首先在类中引用TimeHelper助手类
use zjkal\TimeHelper;
1. 获取需要的秒数
一般用于设置缓存时间,设置结束时间等
//返回到今天晚上零点之前的秒数 TimeHelper::secondEndToday(); //返回N分钟的秒数(默认为1分钟) TimeHelper::secondMinute(5); //返回N小时的秒数(默认为1小时) TimeHelper::secondHour(2); //返回N天的秒数(默认为1天) TimeHelper::secondDay(10); //返回N周的秒数(默认为1周) TimeHelper::secondWeek(4);
2. 返回友好的日期格式,比如N秒前,N分钟前,N小时前等等
一般用于社交类平台,评论,论坛等
//一共2个参数: //第1个参数传入字符串类型的时间或者时间戳都可以, //第2个参数为语言(默认为中文,需要英文请传入en) TimeHelper::toFriendly('2022-3-2 10:15:33'); //英文 TimeHelper::toFriendly(1646186290, 'en');
3. 判断时间范围
//判断日期是否为今天 TimeHelper::isToday('2020-4-10 23:01:11'); //判断日期是否为本周 TimeHelper::isThisWeek('2020-5-1'); //判断日期是否为本月 TimeHelper::isThisMonth(1586451741); //判断日期是否为今年 TimeHelper::isThisYear('Apr 11, 2020'); //判断指定时间是星期几,不传默认为当前时间. 返回值为1-7,1为星期一,7为星期日 TimeHelper::getWeek('2022-11-27'); //判断指定时间是否为平常日(周一到周五) TimeHelper::isWeekday('2023-03-08'); //判断指定时间是否为周末(周六和周日) TimeHelper::isWeekend(1586451741);
4. 计算两个时间相差值
如果只传入一个参数,则与当前时间比较
//计算两个日期相差天数 TimeHelper::diffDays('2022-4-10 23:01:11','Apr 11, 2020'); //计算两个日期相差周数 TimeHelper::diffWeeks('2022-4-10 23:01:11'); //计算两个日期相差月数 TimeHelper::diffMonths(1586451741,'Apr 11, 2020'); //计算两个日期相差年数 TimeHelper::diffYears('2022-4-10 23:01:11','Apr 11, 2020');
5. 返回N小时/天/星期/月/年前或者后的时间戳
只传入1个参数以当前时间计算,传入第2个参数则以该时间计算,传入第3个参数为true,则时间取整
//返回指定时间3分钟前0秒的时间戳 TimeHelper::beforeMinute(3,'2022-3-2 10:15:33',true); //返回当前时间5分钟后的时间戳 TimeHelper::afterMinute(5); //返回指定时间1小时前的时间戳(请注意此用法为php8之后的用法) TimeHelper::beforeHour(datetime:'Apr 11, 2020'); //返回2小时后的时间戳 TimeHelper::afterHour(2); //返回15天前0点的时间戳 TimeHelper::beforeDay(15,null,true); //返回15天后的时间戳 TimeHelper::afterDay(15); //返回指定时间2星期前的时间戳 TimeHelper::beforeWeek(2,'2022-4-10 23:01:11'); //返回指定时间10星期后的时间戳 TimeHelper::afterWeek(10,1646360133); //返回指定时间1个月前的时间戳(请注意此用法为php8之后的用法) TimeHelper::beforeMonth(datetime:1646360133); //返回5个月后的时间戳 TimeHelper::afterMonth(5); //返回指定时间3年前的时间戳 TimeHelper::beforeYear(3,'2022-7-11'); //返回2年后的时间戳 TimeHelper::afterYear(2);
6.获取当前秒级/毫秒级/微秒级/纳秒级的时间戳
生成订单号或者与其他编程语言对接时可能会用到
//获取秒级的时间戳,可用time()代替 TimeHelper::getTimestamp(); //获取毫秒级的时间戳 TimeHelper::getMilliTimestamp(); //获取微秒级的时间戳 TimeHelper::getMicroTimestamp(); //获取纳秒级的时间戳 TimeHelper::getNanoTimestamp();
7.日期转换
用于爬虫爬取网页或第三方程序对接时,时间格式不统一的转换
//将任意格式的时间转换为指定格式 //第一个参数是时间格式,与系统函数date()的格式保持一致 //第二个参数则是任意格式的时间日期,不传则默认为当前时间,可用系统函数date()代替 TimeHelper::format('Y-m-d H:i:s','May 3, 2022'); //判断一个字符串是否为时间戳,是返回true,否返回false TimeHelper::isTimestamp(1646360133); //将任意时间类型的字符串转为时间戳 TimeHelper::toTimestamp('Apr 11, 2020');
8.平闰年相关
比原生方法使用起来更方便
//判断是否为闰年,是返回true,否返回false TimeHelper::isLeapYear('2020-3-2 10:15:33'); //判断该日期的当年有多少天 TimeHelper::daysInYear(1646360133); //判断该日期的当月有多少天 TimeHelper::daysInMonth('Apr 11, 2020');
9.时区相关 🆕
主要提供获取不同时区的时间和转换不同时区的时间的方法
//将任意格式的时间或时间戳转换为指定时区的时间 //第一个参数为要转换的目标时区 //第二个参数为原时区,不传则默认为当前时区 //第三个参数为任意格式的时间或时间戳,不传则默认为当前时间 //第四个参数为时间格式,与系统函数date()的格式保持一致,不传则默认为Y-m-d H:i:s TimeHelper::timezoneFormat('Europe/London', 'Asia/Shanghai', '2023-8-15 19:16:43', 'H:i:s'); //获得当前洛杉矶的时间 TimeHelper::timezoneFormat('America/Los_Angeles'); //将洛杉矶时间转换为伦敦时间 TimeHelper::timezoneFormat('Europe/London', 'America/Los_Angeles', 'Aug 15, 2023 10:15:33', 'H:i:s'); //将时间戳转换为伦敦时间 TimeHelper::timezoneFormat('Europe/London', null, 1692097543);
所支持的时区列表请参考时区列表
10.国内节假日/工作日相关 🔥
专门针对国内的节假日进行判断,目前包含2020年-2023年的节假日数据,后续也会持续更新.
为了便于维护,另起了一个类ChinaHoliday,同样可以传入任意类型的时间格式或时间戳
use zjkal\ChinaHoliday; //判断指定日期是否为国内的工作日 ChinaHoliday::isWorkday('2023-01-23'); //判断指定日期是否为国内的节假日 ChinaHoliday::isHoliday(1646360133);
特别说明:
所有时间的方法都可以传入任意格式的时间或者时间戳, 但是有一点请注意 m/d/y 或 d-m-y
格式的日期,如果分隔符是斜线(/),则使用美洲的 m/d/y 格式。如果分隔符是横杠(-)或者点(.),则使用欧洲的 d-m-y
格式。为了避免潜在的错误,您应该尽可能使用 YYYY-MM-DD 格式或其他格式.
📖开源协议
TimeHelper遵循MIT开源协议, 意味着您无需任何授权,即可免费将TimeHelper应用到您的项目中
以上就是TimeHelper简单快捷PHP日期时间助手类库使用详解的详细内容,更多关于PHP TimeHelper日期时间助手类库的资料请关注脚本之家其它相关文章!
相关文章
thinkphp 3.2框架视图模型 实例视图查询结果的二维数组合并操作示例
这篇文章主要介绍了thinkphp 3.2框架视图模型 实例视图查询结果的二维数组合并操作,结合实例形式分析了thinkPHP3.2针对视图查询结果的数组合并相关操作技巧,需要的朋友可以参考下2020-03-03
最新评论