- 这是一个最不便的PHP工夫助手类
- 所有办法都能够传入任意类型的工夫日期格局或者工夫戳
- 作者将长期保护并不断完善使用率比拟高的助手函数
通过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.国内节假日/工作日相干 🆕
专门针对国内的节假日进行判断,目前蕴含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 格局或其余格局.
发表回复