Calendar? ?? ??? ?? ?? ?????. PHP?? ? ?? ?? ??? ???? ??? ?????? ? ????? ??? ?? ????? ???? ???? ??? ?????.
Calendar? ?? ??? ?? ????? ????? ??? ??? ??? ???? ?? ?????? ? ??? ???? ??? ????. ??? ??? ??? ??? ???? ??? ?? ????? ????.
Date Calendar Type
PHP? ????? UTC ??? ?????, ????? ?? ?? UTC ??? 8? ??? ???. ??? ???? ?8?. ??, php.ini? ???????? ??? ?? ????? ?? ???? ??? ???? ??? ?? ????.
?? ???? ??? ????? ??? ?????. ??? ?? ??? ?? ?? ????? ???? ?????? ??? ?????. ? ?? ????? ??? ?? ??? ???, ??? ?? ? ? ?? ??? ?????? ?????. ??? ?????? ??????? ??? ????. ? ??? ?? ???, ???? ??? ??? ??? ??? ???. ?? ????? ??? ??? ??? ???????.
? ??? ???? ??? ?? ??? ?? ??? ? ???, ?????? ???? ?????? ??????? ??? ?? ? ???? ??? ??? ?? ? ????. ??, ??? ??? ??? ? ??, ?? ??? ??? ? ??? ??? ????? ??? ??? ?? ??? ? ??? ??? ?? ?? ???? ??????.
??? ?? ?? ? ??? ?? ??
??? ??? PHP ?? ???? ???? ?? ??? ??? ??? ????. ??? ?? ??? ??? ? ?? ?? PHP? ?? ????? --enable-calendar ????? ??? ? ????.
???? ??? ??? ?? ??? ???????. ???? ???? ?????.
$info = cal_info(2); print_r($info); // Array // ( // [months] => Array // ( // [1] => Tishri // [2] => Heshvan // [3] => Kislev // [4] => Tevet // [5] => Shevat // [6] => Adar I // [7] => Adar II // [8] => Nisan // [9] => Iyyar // [10] => Sivan // [11] => Tammuz // [12] => Av // [13] => Elul // ) // [abbrevmonths] => Array // ( // [1] => Tishri // [2] => Heshvan // [3] => Kislev // [4] => Tevet // [5] => Shevat // [6] => Adar I // [7] => Adar II // [8] => Nisan // [9] => Iyyar // [10] => Sivan // [11] => Tammuz // [12] => Av // [13] => Elul // ) // [maxdaysinmonth] => 30 // [calname] => Jewish // [calsymbol] => CAL_JEWISH // )
cal_info() ??? ?? ????? ???, CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH, CAL_FRENCH? ???? ??? 0, 1, 2, 3???. ? ???? ???? ?? CAL_JEWISH ?????. ???? ? ??? ?????? ?? ??? ?? ?? ? ? ????. ?? ?? Nisan? Tishri? ????. ?? ??? ?????? ?? ??? ??? ??? ? ????.
?? ???? ??? ??? ?? ??? ? ? ????. ?????? ?????? ????? ?????? ? ??? ??? ? ??? ?? ??????.
?? ?? ??
?? ?? ??? ????? ??? ??? ????? ??? ???? ???. ? jd ??? ??? ?? ?? ??? ???? ?? ??? ?? ??? ??? ? ????.
// 轉(zhuǎn)變Unix時(shí)間戳為Julian Day計(jì)數(shù) $today = unixtojd(mktime(0, 0, 0, 9, 23, 2020)); echo $today, PHP_EOL; // 2459116
unixtojd() ??? ???? unix ?????? jd ??? ?????. ????, 2020? 9? 23?? ???? ??? ??? ???????.
// 獲取當(dāng)前猶太歷時(shí)間 print_r(cal_from_jd($today, CAL_JEWISH)); // Array // ( // [date] => 1/5/5781 // [month] => 1 // [day] => 5 // [year] => 5781 // [dow] => 3 // [abbrevdayname] => Wed // [dayname] => Wednesday // [abbrevmonth] => Tishri // [monthname] => Tishri // )
??? ??? ?? ?? ?????. ??? ?? ????? 5781? 1? 5? ??????. ?? ?? ??????, ?? ??????? ? ?? ?? ???? ????? ???? ?? ?? ?? ???? ??? ??? ?????.
cal_from_jd()? ??? jd ??? ???? ??? ??? ?? ??? ???? ????. ?? cal_to_jd() ??? ???? ?? ???? jd ??? ?????.
echo cal_to_jd(CAL_JEWISH, 1, 5, 5781), PHP_EOL; // 2459116 echo cal_to_jd(CAL_GREGORIAN,9, 23, 2020), PHP_EOL; // 2459116
?? ????? ??? jd ??? ??????? ??? jd ??? ???? ?? ? ? ????.
?? jd ??? ??? ??? ???? ??? ?? ????.
echo date("Y-m-d", jdtounix($today)), PHP_EOL; // 2020-09-23
cal_from_jd() ? cal_to_jd() ??? Calendar ?? ????? ?? ??? ?? ? ?? ?? ??? ????? cal_from_jd() ??? ?? ??? ?? ?? ??? ?? ?????. ?? ?? ??? ?????.
// 轉(zhuǎn)變一個(gè)Gregorian歷法日期到Julian Day計(jì)數(shù) $jd = GregorianToJD(9, 23, 2020); // 轉(zhuǎn)變一個(gè)Julian Day計(jì)數(shù)為Gregorian歷法日期 echo jdtogregorian($jd), PHP_EOL; // 9/23/2020 // 轉(zhuǎn)變一個(gè)Julian Day計(jì)數(shù)為Julian歷法日期 echo jdtojulian($jd), PHP_EOL; // 9/10/2020 // 轉(zhuǎn)變一個(gè)Julian Day計(jì)數(shù)為猶太歷法日期 echo jdtojewish($jd), PHP_EOL; // 1/5/5781 // 轉(zhuǎn)變一個(gè)Julian Day計(jì)數(shù)為unix時(shí)間戳 echo jdtounix($jd), PHP_EOL; // 1600819200 $jd = GregorianToJD(9, 23, 1799); // 轉(zhuǎn)變一個(gè)Julian Day計(jì)數(shù)為French歷法日期 echo jdtofrench($jd), PHP_EOL; // 1/1/8
GregorianToJD() ???? ????? ??? jd ??? ??? ???? ????. jdtoxxxx ??? jd ??? ???? ?? ??? ??? ??? ??? ????? ???????.
?? ??? 1792? 9? 22??? 1806? 9? 22???? ?? ?? ??? ????? ?? ?? ?????. ?? ??? ?1??? ?? ?? ??? ????, 1806?? ???????. 1804? ????? ??? ?1??? ??? ?. ??? ??? ??(?? ??)? ???? ???? ??? ?? ??????.
?? ?? ??
?? ??? ??? ??? ??? ???? ???? Calendar ?? ????? ?? ???????.
$num = cal_days_in_month(CAL_GREGORIAN, 2, 2020); echo $num, PHP_EOL; // 29
cal_days_in_month() 函數(shù)是返回指定歷法月份的天數(shù),比如我們看看 2020 年的 2月 是不是 閏月 就可以用這個(gè)函數(shù)來實(shí)現(xiàn)。
復(fù)活節(jié)彩蛋
復(fù)活節(jié)是西方非常重要的一個(gè)節(jié)日,所以在 Calendar 擴(kuò)展中就有函數(shù)可以直接獲得指定年份的復(fù)活節(jié)日期。關(guān)于復(fù)活節(jié)的計(jì)算方式其實(shí)還是比較復(fù)雜的,手工推算是比較麻煩的,而程序計(jì)算就非常方便了。
// 指定年份的復(fù)活節(jié)時(shí)間戳 echo date("M-d-Y", easter_date(2019)), PHP_EOL; // Apr-21-2019 echo date("M-d-Y", easter_date(2020)), PHP_EOL; // Apr-12-2020 echo date("M-d-Y", easter_date(2021)), PHP_EOL; // Apr-04-2021 // 3月21日到復(fù)活節(jié)之間的天數(shù) echo easter_days(2019), PHP_EOL; // 31 echo easter_days(2020), PHP_EOL; // 22 echo easter_days(2021), PHP_EOL; // 14
easter_date() 函數(shù)就是返回指定年份的復(fù)活節(jié)日期。而 easter_days() 函數(shù)則是返回從當(dāng)年公歷的 3月21日 到復(fù)活節(jié)之間的天數(shù)。
復(fù)活節(jié)是每年春分月圓后的第一個(gè)星期日,而春分一般是在3月21日,這就簡化為只要計(jì)算滿月的日期和緊挨的星期日的日期就可以得到每年復(fù)活節(jié)的具體日期了。這種函數(shù)在西方世界的軟件開發(fā)中會(huì)非常常用,其實(shí)就像我們需要獲取每年春節(jié)的具體公歷日期一樣。
總結(jié)
是不是很有意思的一套擴(kuò)展函數(shù)。不過對(duì)于我們主要面向國內(nèi)開發(fā)的開發(fā)者來說用處確實(shí)不大,但筆者在學(xué)習(xí)這個(gè)擴(kuò)展的時(shí)候另外收獲了不少歷史方面的知識(shí),也算是開了眼界,也不失為一大收獲,大家也自己試著玩玩并且查查相關(guān)的歷史知識(shí)吧,說不定你的收獲會(huì)更多!
測試代碼:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/10.PHP中非常好玩的Calendar擴(kuò)展學(xué)習(xí).php
參考文檔:https://www.php.net/manual/zh/book.calendar.php
推薦學(xué)習(xí):《PHP視頻教程》
? ??? PHP? ??? ???? ?????? ???? ???? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ?? ??? ??? ?? JavaScript? MediareCorder API? ?? PHP ???? ???? ?????. 2. PHP? ???? ?? ??? ???? STTAPI (? : Google ?? Baidu ?? ??)? ???? ???? ?????. 3. PHP? ???? AI ??? (? : OpenAigpt)? ????. 4. ?? ?? PHP? TTSAPI (? : Baidu ?? Google ?? ??)? ???? ??? ?? ??? ?????. 5. PHP? ?? ??? ??? ??? ??? ?? ?? ??? ?????. ?? ????? PHP? ?? ???? ?? ?? ?? ??? ??? ?????.

PHP?? ?? ?? ??? ???? ?? ??? ? ???? ?? ??? ???? ?? ??? ???? ???? ????. 1. ?? ?? ??? ?? ??? URL ? ?? ??? ????. 2. UrlenCode? ???? ?? ??? ???????. 3. ? ???? ????? ?? ?? ??? ? ?? ??? ?????. 4. ???? ???? ?? ? ? ??? ??? ??? ??? ?????. 5. ??? ?? ??? ????? ?? ????? OG ??? ???? ?????. 6. XSS ??? ???? ?? ??? ??? ?????. ? ???? ??? ??? ???? ??? ?? ?? ??? ??? ???? ??? ?? ??? ?????.

AI? ??? ??? ?? ?? ? ?? ???? ????? ?? ??? ??????. 1. Baidu, Tencent API ?? ?? ?? NLP ?????? ?? ??? AI ?? ?? API? ??????. 2. PHP? ? ?? guzzle? ?? API? ???? ?? ??? ??????. 3. ?? ????? ?? ?? ??? ???? ???? ???? ??? ??? ? ????. 4. ?? ?? ? ?? ???? ?? PHP-L ? PHP_CODESNIFFER? ??????. 5. ???? ????? ???? ?? ?? ??? ?????? ??? ??????. AIAPI? ??? ? ???, ?? ??, ?? ? PHP ?? ??? ??? ???. ?? ???? PSR ??? ???, ??? ????? ????, ?? ??? ???, ????? ??? ????, X? ???????.

1. ?? ???? ??? ??? ?????? ?? ?? ??? ??, ??? ?? ???? ??? (? : ?? ???, ? ? ??), ?? ??? ?? ???? ???? ? ?? ?? ??? ??? ?? ??? ????????. 2. ?? ??? ??? ?? ? ??? ???? ?? ?? ?? ???? ?? ? ?? AUDIT ?? ??? ??? ? ????? ????? ??? ???????. 3. ?? ?? ??? ?? ??? ???????. Recaptchav3 ???? ??, ??? ?? ?? ?? ?? ??, IP ? ?? ??? ??? ??? ?? ???? ??? ?? ??? ????? ??? ???? ????? ??? ?????.

PHP? AI ??? ??? ?? ????? ??? API? ?? ?????. ??? ??? ????? ? ??? ???? ?????. API ??? ?? ?? ??? ???? ??? ??? ???? ???? ? ????. 2. ?? ?? ???? guzzle ?? curl? ???? HTTP ??? ???, JSON ??? ??? ? ???, API ? ?? ??, ??? ? ?? ??? ???? ??, ??? ?? ?? ? ? ?? ????, ??? ?? ? ?????? ?????. 3. ???? ???? ?? ???? API ??, ?? ? ??? ?? ??, ??? ?? ??, ?? ?? ? ??? ??? ??? ?????. ?? ??? ??? ??? ? ??? ???? Propt ?? ? ?? ?? ??, ??? ?? ? ?? ????, ?? ?? ?? ???? ? ??? ?? ? ???? ????? ?????.

PHP? ?????? ????? ?? ?? ?? ???? ???? ?? ???? ???? ?? ?? ???? ?????. 2. ?? ??? ???? ???? ?? ??? ?? ? ??? ??? ???? ?? API/Webhook ??? ??? ?? ???? ??? ??? ??? ??? ?????. 3. ?? ????? ?? ??, ??/???? ????, ???? ??, ???? ? ??? ?????? ????? ?? ??? ???? ???? ?? Dingtalk, SMS ?? ??? ???? ??? ?????? ???? ?? ? ??? ??? ????? ?? ??? ???? ???????.

PhpisstillRelevantinmodernenterpriseenvironments.1. Modernphp (7.xand8.x)? ??? ??, ??? ??, jitcompilation ? modernsyntax, mateitsuilableforlarge-scalepplications

??? AI ?? ?? ???? ???? PHPSDK? ??????. 2. PHP? ???? FFMPEG? ???? ???? API ?? ?? (? : WAV)?? ?????. 3. ??? ???? ????? ????? API ???? ??? ??????. 4. NLP ??? ???? JSON ??? ???? ???? ?????. 5. ?? ??? ???? ???? ?? ?? ?? ?? ?? ??? ?????. ?? ????? ?? ?? ? ??? ???? ?? ??? ???, ??? ?? ? ??? ???????.
