国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

???最好用的PHP時(shí)間日期類庫(kù)(支持Composer加載)

zjkal?

分享一個(gè)最方便的PHP時(shí)間助手類, 這個(gè)類庫(kù)的最大特色是:所有方法都可傳入任意類型的時(shí)間格式&時(shí)間戳

通過Composer導(dǎo)入類庫(kù)

composer require zjkal/time-helper

使用方法
首先在類中引用TimeHelper助手類

use zjkal\TimeHelper;

1. 獲取需要的秒數(shù)

一般用于設(shè)置緩存時(shí)間,設(shè)置結(jié)束時(shí)間等

//返回到今天晚上零點(diǎn)之前的秒數(shù)
TimeHelper::secondEndToday();

//返回N分鐘的秒數(shù)(默認(rèn)為1分鐘)
TimeHelper::secondMinute(5);

//返回N小時(shí)的秒數(shù)(默認(rèn)為1小時(shí))
TimeHelper::secondHour(2);

//返回N天的秒數(shù)(默認(rèn)為1天)
TimeHelper::secondDay(10);

//返回N周的秒數(shù)(默認(rèn)為1周)
TimeHelper::secondWeek(4);

2. 返回友好的日期格式,比如N秒前,N分鐘前,N小時(shí)前等等

一般用于社交類平臺(tái),評(píng)論,論壇等

//一共2個(gè)參數(shù):
//第1個(gè)參數(shù)傳入字符串類型的時(shí)間或者時(shí)間戳都可以,
//第2個(gè)參數(shù)為語言(默認(rèn)為中文,需要英文請(qǐng)傳入en)
TimeHelper::toFriendly('2022-3-2 10:15:33');
//英文
TimeHelper::toFriendly(1646186290, 'en');

3. 判斷時(shí)間范圍

//判斷日期是否為今天
TimeHelper::isToday('2020-4-10 23:01:11');

//判斷日期是否為本周
TimeHelper::isThisWeek('2020-5-1');

//判斷日期是否為本月
TimeHelper::isThisMonth(1586451741);

//判斷日期是否為今年
TimeHelper::isThisYear('Apr 11, 2020');

//判斷指定時(shí)間是星期幾,不傳默認(rèn)為當(dāng)前時(shí)間. 返回值為1-7,1為星期一,7為星期日
TimeHelper::getWeek('2022-11-27');

4. 計(jì)算兩個(gè)時(shí)間相差值

如果只傳入一個(gè)參數(shù),則與當(dāng)前時(shí)間比較

//計(jì)算兩個(gè)日期相差天數(shù)
TimeHelper::diffDays('2022-4-10 23:01:11','Apr 11, 2020');

//計(jì)算兩個(gè)日期相差周數(shù)
TimeHelper::diffWeeks('2022-4-10 23:01:11');

//計(jì)算兩個(gè)日期相差月數(shù)
TimeHelper::diffMonths(1586451741,'Apr 11, 2020');

//計(jì)算兩個(gè)日期相差年數(shù)
TimeHelper::diffYears('2022-4-10 23:01:11','Apr 11, 2020');

5. 返回N小時(shí)/天/星期/月/年前或者后的時(shí)間戳

只傳入1個(gè)參數(shù)以當(dāng)前時(shí)間計(jì)算,傳入第2個(gè)參數(shù)則以該時(shí)間計(jì)算,傳入第3個(gè)參數(shù)為true,則時(shí)間取整

//返回指定時(shí)間3分鐘前0秒的時(shí)間戳
TimeHelper::beforeMinute(3,'2022-3-2 10:15:33',true);

//返回當(dāng)前時(shí)間5分鐘后的時(shí)間戳
TimeHelper::afterMinute(5);

//返回指定時(shí)間1小時(shí)前的時(shí)間戳(請(qǐng)注意此用法為php8之后的用法)
TimeHelper::beforeHour(datetime:'Apr 11, 2020');

//返回2小時(shí)后的時(shí)間戳
TimeHelper::afterHour(2);

//返回15天前0點(diǎn)的時(shí)間戳
TimeHelper::beforeDay(15,null,true);

//返回15天后的時(shí)間戳
TimeHelper::afterDay(15);

//返回指定時(shí)間2星期前的時(shí)間戳
TimeHelper::beforeWeek(2,'2022-4-10 23:01:11');

//返回指定時(shí)間10星期后的時(shí)間戳
TimeHelper::afterWeek(10,1646360133);

//返回指定時(shí)間1個(gè)月前的時(shí)間戳(請(qǐng)注意此用法為php8之后的用法)
TimeHelper::beforeMonth(datetime:1646360133);

//返回5個(gè)月后的時(shí)間戳
TimeHelper::afterMonth(5);

//返回指定時(shí)間3年前的時(shí)間戳
TimeHelper::beforeYear(3,'2022-7-11');

//返回2年后的時(shí)間戳
TimeHelper::afterYear(2);

6.獲取當(dāng)前秒級(jí)/毫秒級(jí)/微秒級(jí)/納秒級(jí)的時(shí)間戳,生成訂單號(hào)或者與其他編程語言對(duì)接時(shí)可能會(huì)用到


//獲取秒級(jí)的時(shí)間戳,可用time()代替
TimeHelper::getTimestamp();

//獲取毫秒級(jí)的時(shí)間戳
TimeHelper::getMilliTimestamp();

//獲取微秒級(jí)的時(shí)間戳
TimeHelper::getMicroTimestamp();

//獲取納秒級(jí)的時(shí)間戳
TimeHelper::getNanoTimestamp();

7.日期轉(zhuǎn)換

用于爬蟲爬取網(wǎng)頁或第三方程序?qū)訒r(shí),時(shí)間格式不統(tǒng)一的轉(zhuǎn)換

//將任意格式的時(shí)間轉(zhuǎn)換為指定格式
//第一個(gè)參數(shù)是時(shí)間格式,與系統(tǒng)函數(shù)date()的格式保持一致
//第二個(gè)參數(shù)則是任意格式的時(shí)間日期,不傳則默認(rèn)為當(dāng)前時(shí)間,可用系統(tǒng)函數(shù)date()代替
TimeHelper::format('Y-m-d H:i:s','May 3, 2022');

//判斷一個(gè)字符串是否為時(shí)間戳,是返回true,否返回false
TimeHelper::isTimestamp(1646360133);

//將任意時(shí)間類型的字符串轉(zhuǎn)為時(shí)間戳
TimeHelper::toTimestamp('Apr 11, 2020');

8.平閏年相關(guān)

比原生方法使用起來更方便

//判斷是否為閏年,是返回true,否返回false
TimeHelper::isLeapYear('2020-3-2 10:15:33');

//判斷該日期的當(dāng)年有多少天
TimeHelper::daysInYear(1646360133);

//判斷該日期的當(dāng)月有多少天
TimeHelper::daysInMonth('Apr 11, 2020');

9.時(shí)區(qū)相關(guān) ??

主要提供獲取不同時(shí)區(qū)的時(shí)間和轉(zhuǎn)換不同時(shí)區(qū)的時(shí)間的方法

//將任意格式的時(shí)間或時(shí)間戳轉(zhuǎn)換為指定時(shí)區(qū)的時(shí)間
//第一個(gè)參數(shù)為要轉(zhuǎn)換的目標(biāo)時(shí)區(qū)
//第二個(gè)參數(shù)為原時(shí)區(qū),不傳則默認(rèn)為當(dāng)前時(shí)區(qū)
//第三個(gè)參數(shù)為任意格式的時(shí)間或時(shí)間戳,不傳則默認(rèn)為當(dāng)前時(shí)間
//第四個(gè)參數(shù)為時(shí)間格式,與系統(tǒng)函數(shù)date()的格式保持一致,不傳則默認(rèn)為Y-m-d H:i:s
TimeHelper::timezoneFormat('Europe/London', 'Asia/Shanghai', '2023-8-15 19:16:43', 'H:i:s');
//獲得當(dāng)前洛杉磯的時(shí)間
TimeHelper::timezoneFormat('America/Los_Angeles');
//將洛杉磯時(shí)間轉(zhuǎn)換為倫敦時(shí)間
TimeHelper::timezoneFormat('Europe/London', 'America/Los_Angeles', 'Aug 15, 2023 10:15:33', 'H:i:s');
//將時(shí)間戳轉(zhuǎn)換為倫敦時(shí)間
TimeHelper::timezoneFormat('Europe/London', null, 1692097543);

所支持的時(shí)區(qū)列表請(qǐng)參考時(shí)區(qū)列表

10.國(guó)內(nèi)節(jié)假日/工作日相關(guān) ??

專門針對(duì)國(guó)內(nèi)的節(jié)假日進(jìn)行判斷,目前包含2020年-2024年的節(jié)假日數(shù)據(jù),后續(xù)也會(huì)持續(xù)更新.
為了便于維護(hù),另起了一個(gè)類ChinaHoliday,同樣可以傳入任意類型的時(shí)間格式或時(shí)間戳

use zjkal\ChinaHoliday;

//判斷指定日期是否為國(guó)內(nèi)的工作日
ChinaHoliday::isWorkday('2023-01-23');

//判斷指定日期是否為國(guó)內(nèi)的節(jié)假日
ChinaHoliday::isHoliday(1646360133);

特別說明: 所有時(shí)間的方法都可以傳入任意格式的時(shí)間或者時(shí)間戳, 但是有一點(diǎn)請(qǐng)注意 m/d/y 或 d-m-y 格式的日期,如果分隔符是斜線(/),則使用美洲的 m/d/y 格式。如果分隔符是橫杠(-)或者點(diǎn)(.),則使用歐洲的 d-m-y 格式。為了避免潛在的錯(cuò)誤,您應(yīng)該盡可能使用 YYYY-MM-DD 格式或其他格式.

最后貼上github傳送門:https://github.com/zjkal/time-helper

2937 7 10
7個(gè)評(píng)論

liziyu

先點(diǎn)贊??
再請(qǐng)求,能否增加一個(gè),判斷某一天是否為“工作日”的判斷?

  • zjkal? 2023-03-07

    如果只是判斷周六和周日, 或者周一到周五, 這個(gè)可以加. 但是節(jié)日的休息是無法通過程序判斷的

  • liziyu 2023-03-08

    是的,每年年底11月份左右,行政出臺(tái)下年的工作日,這個(gè)目前還沒找到接口。

  • zjkal? 2023-03-08

    我已經(jīng)想到解決辦法了, 最近這兩三天就會(huì)增加你說的這個(gè), 針對(duì)國(guó)內(nèi)節(jié)假日和工作日的判斷方法

  • liziyu 2023-03-08

    大佬辛苦了!??

  • zjkal? 2023-03-08

    不敢當(dāng)啊, 不過我已經(jīng)寫了一個(gè)方法, 自己測(cè)試感覺沒問題, 你如果有需要的話, 可以去用一用,有問題喊我

zjkal?

更新補(bǔ)充: 增加了專門用于判斷是否為國(guó)內(nèi)的工作日/節(jié)假日的方法, 詳情請(qǐng)直接查看Github

  • 暫無評(píng)論
zjkal?

更新補(bǔ)充:增加了專門用于轉(zhuǎn)換時(shí)區(qū)的方法

  • 暫無評(píng)論
zjkal?

更新補(bǔ)充: 增加了兩個(gè)時(shí)間比較早晚的方法:compare()

  • 暫無評(píng)論
zjkal?

已增加2024年國(guó)內(nèi)放假數(shù)據(jù), 請(qǐng)及時(shí)update

  • 暫無評(píng)論
csnow

牛逼啊

TM

大佬,可以增加一下根據(jù)兩個(gè)時(shí)間判斷(某個(gè)時(shí)間不傳默認(rèn)今天的時(shí)間)是否在前面?zhèn)魅氲膬蓚€(gè)時(shí)間之間的判斷嗎

  • zjkal? 2024-07-06

    判斷之間可能不太常用, 建議使用兩次compare()方法:

    
    $my_date = Timehelper::now();
    $from_date = '2024-07-01 12:00:00';
    $to_date = '2024-08-01 12:00:00';
    
    //判斷$my_date是否在$from_date和$to_date之間
    if (Timehelper::compare($my_date,$from_date) === 1 && Timehelper::compare($my_date,$to_date) === -1){
        echo '在';
    }else{
        echo '不在';
    }

    你也可以簡(jiǎn)單做個(gè)封裝

  • TM 2024-07-07

    好的好的

年代過于久遠(yuǎn),無法發(fā)表評(píng)論

zjkal?

510
積分
0
獲贊數(shù)
0
粉絲數(shù)
2023-03-02 加入
??