关于php:🎖️最好用的PHP时间日期类库

  • 这是一个最不便的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 格局或其余格局.

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理