久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

PHP中什么是Calendar擴展?如何使用?

Calendar是一套關(guān)于日期歷法的擴展,在PHP中要如何使用該Calendar擴展?本篇文章給大家介紹一下Calendar 擴展安裝和使用方法。

PHP中什么是Calendar擴展?如何使用?

Calendar是一套關(guān)于日期歷法的擴展,但是對于我們來說,它沒有農(nóng)歷的相關(guān)操作,所以對于我們中國人來說這個擴展并沒有什么實際的作用。不過這并不妨礙我們?nèi)チ私鈱W(xué)習(xí)它。

日期歷法類型

對于正常情況下的日期操作來說,PHP 默認使用的是 UTC 時間,也就是國際標(biāo)準(zhǔn)時間,對于我們國家來說,需要在標(biāo)準(zhǔn) UTC 的時間上加 8 來表示北京時間東八區(qū)。當(dāng)然,也可以直接修改 php.ini 或者數(shù)據(jù)庫中的時區(qū)相關(guān)參數(shù)來定義好日期時區(qū)。

標(biāo)準(zhǔn)時區(qū)對應(yīng)的其實就是格里高利時間歷法 Gregorian 。也就是我們現(xiàn)在最常用的公歷、陽歷日期。Calendar 擴展中除了這個標(biāo)準(zhǔn)的公歷歷法之外,還支持 猶太歷法 Jewish 、 法歷 French 以及另一個非常出名的 儒略歷 Julian 。我們的 Gregorian 歷法就是從 Julian 歷中演化而來的,它們的差距并不大,但 猶太歷 和 法歷 的差距就比較大了,一會在下面的代碼中我們將看到各種歷法之間的差別。

關(guān)于這些歷法的具體內(nèi)容大家可以自行查詢一下相關(guān)的資料,也能夠?qū)W習(xí)到一些有趣的歷史知識,比如為什么廢棄了 儒略歷 而將公歷定為了 格里歷 。還有 法歷 為什么只有短短的那些年,猶太歷 為什么年份記得這么大了。法歷 和 猶太歷 月份名字的來源等,都是很有趣的故事。

Calendar 擴展安裝及歷法信息查看

Calendar 擴展已經(jīng)集成在 PHP 安裝包中了,不需要特別的單獨去安裝。如果你無法使用 Calendar 相關(guān)的函數(shù),可以重新編譯 PHP 并加上 –enable-calendar 參數(shù)即可。

接下來我們看下指定歷法的詳細信息,這里我們指定的是 猶太歷 。

$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() 函數(shù)接收的參數(shù)是一個常量,分別是 CAL_GREGORIAN ,CAL_JULIAN ,CAL_JEWISH ,CAL_FRENCH ,它們對應(yīng)的數(shù)字就是 0,1,2,3 。在這段代碼中,我們返回的就是 CAL_JEWISH 的信息。可以看出,猶太歷 中的月份名稱與公歷中的英文名稱都不一樣,比如這里有 尼撒月 Nisan 、提市黎月 Tishri 。具體的內(nèi)容就不深究了,畢竟我們在日常生活中是完全接觸不到這種歷法的。

大家可以自己試試其它歷法返回的信息內(nèi)容,公歷和儒略歷是一樣的,法歷中的月份名字就又不一樣了,而且這些名字還都很有意思。

日期歷法轉(zhuǎn)換

首先,要進行歷法轉(zhuǎn)換的話,我們要將指定的日期轉(zhuǎn)換成 Julian Days 計數(shù)。這個 jd 計數(shù)可以看作是 Calendar 擴展的一個中間變量,用于各種歷法之間的換算。

//  轉(zhuǎn)變Unix時間戳為Julian Day計數(shù) $today = unixtojd(mktime(0, 0, 0, 9, 23, 2020)); echo $today, PHP_EOL; // 2459116

使用 unixtojd() 函數(shù)就可以將一個 unix 時間戳轉(zhuǎn)換成 jd 計數(shù)。接下來,我們看看 2020 年 9 月 23 號對應(yīng)的 猶太歷 是哪一天。

// 獲取當(dāng)前猶太歷時間 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 // )

返回的信息中已經(jīng)很明確了吧,我們這一天是 猶太歷 的 5781 年 1 月 5 號 星期三 。當(dāng)前的月份是 Tishri 提市黎月 ,對應(yīng)著公歷年的第一個月,猶太歷中教會年的第七個月,代表著秋天的到來。

cal_from_jd() 函數(shù)的作用就是根據(jù) jd計數(shù) 返回指定歷法的詳細信息。而另外一個 cal_to_jd() 函數(shù)則是從一個支持的歷法數(shù)據(jù)轉(zhuǎn)換為 jd計數(shù) 。

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計數(shù) 和我們公歷返回的 jd計數(shù) 是一致的。

當(dāng)然,我們也可以將 jd計數(shù) 的日期轉(zhuǎn)換成 unix 時間。

echo date("Y-m-d", jdtounix($today)), PHP_EOL; // 2020-09-23

除了 cal_from_jd() 和 cal_to_jd() 之外,Calendar 擴展還為我們提供了一些快捷的函數(shù)進行日期的轉(zhuǎn)換,只不過它們是直接返回的字符串類型的日期信息,不是像 cal_from_jd() 函數(shù)一樣返回日期的詳細信息。

// 轉(zhuǎn)變一個Gregorian歷法日期到Julian Day計數(shù) $jd = GregorianToJD(9, 23, 2020);  // 轉(zhuǎn)變一個Julian Day計數(shù)為Gregorian歷法日期 echo jdtogregorian($jd), PHP_EOL; // 9/23/2020 // 轉(zhuǎn)變一個Julian Day計數(shù)為Julian歷法日期 echo jdtojulian($jd), PHP_EOL; // 9/10/2020 // 轉(zhuǎn)變一個Julian Day計數(shù)為猶太歷法日期 echo jdtojewish($jd), PHP_EOL; // 1/5/5781 // 轉(zhuǎn)變一個Julian Day計數(shù)為unix時間戳 echo jdtounix($jd), PHP_EOL; // 1600819200  $jd = GregorianToJD(9, 23, 1799); // 轉(zhuǎn)變一個Julian Day計數(shù)為French歷法日期 echo jdtofrench($jd), PHP_EOL; // 1/1/8

GregorianToJD() 方法就是快捷地轉(zhuǎn)換一個公歷日期為 jd計數(shù) 。而 jdtoxxxxx 為些函數(shù)就是快速地返回 jd計數(shù) 對應(yīng)的日期歷法的字符串信息。

大家可以注意下,法歷 日期只能是公歷 1792年9月22日到1806年9月22日 這段日期以內(nèi)的日期,也就是 法蘭西第一共和國 成立后推出的 法歷 ,并在 1806年 結(jié)束使用,因為 1804年 拿破侖 成立了 法蘭西第一帝國 。帝國廢止了 法歷(共和歷)并全面推行 公歷 。

某個月份的天數(shù)

上面的歷史知識學(xué)習(xí)的怎么樣?接下來還是回歸到 Calendar 擴展中的學(xué)習(xí)中來。

$num = cal_days_in_month(CAL_GREGORIAN, 2, 2020); echo $num, PHP_EOL; // 29

cal_days_in_month() 函數(shù)是返回指定歷法月份的天數(shù),比如我們看看 2020 年的 2月 是不是 閏月 就可以用這個函數(shù)來實現(xiàn)。

復(fù)活節(jié)彩蛋

復(fù)活節(jié)是西方非常重要的一個節(jié)日,所以在 Calendar 擴展中就有函數(shù)可以直接獲得指定年份的復(fù)活節(jié)日期。關(guān)于復(fù)活節(jié)的計算方式其實還是比較復(fù)雜的,手工推算是比較麻煩的,而程序計算就非常方便了。

// 指定年份的復(fù)活節(jié)時間戳 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é)是每年春分月圓后的第一個星期日,而春分一般是在3月21日,這就簡化為只要計算滿月的日期和緊挨的星期日的日期就可以得到每年復(fù)活節(jié)的具體日期了。這種函數(shù)在西方世界的軟件開發(fā)中會非常常用,其實就像我們需要獲取每年春節(jié)的具體公歷日期一樣。

總結(jié)

是不是很有意思的一套擴展函數(shù)。不過對于我們主要面向國內(nèi)開發(fā)的開發(fā)者來說用處確實不大,但筆者在學(xué)習(xí)這個擴展的時候另外收獲了不少歷史方面的知識,也算是開了眼界,也不失為一大收獲,大家也自己試著玩玩并且查查相關(guān)的歷史知識吧,說不定你的收獲會

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产欧美日韩亚洲一区二区三区| 91精品国产一区二区在线观看| 欧美私人啪啪vps| 国产亚洲一区| 国产精品嫩模av在线| 国产精品地址| 日韩和的一区二在线| 精品久久一区| 91精品啪在线观看国产18| 欧美/亚洲一区| 亚洲精一区二区三区| 久久不卡日韩美女| 毛片在线网站| 免费视频一区二区| 国产精品hd| 亚洲韩日在线| 日韩精品欧美精品| 伊人久久视频| 美国三级日本三级久久99| 69堂免费精品视频在线播放| 久久一区精品| 亚洲神马久久| 久久国产精品色av免费看| 欧美久久天堂| 91成人小视频| 尤物在线精品| 首页国产精品| 亚洲精品日本| 成人羞羞视频在线看网址| 亚洲美女91| 国精品一区二区三区| 欧美aaaaaa午夜精品| 国产亚洲精品v| 国产欧洲在线| 国产剧情一区| 亚洲精品乱码日韩| 91精品国产91久久久久久黑人| 视频在线观看91| 国产色播av在线| 国产午夜精品一区在线观看| 日本国产精品| 精品黄色一级片| aⅴ色国产欧美| 中文在线а√天堂| 欧美精品国产一区| 亚洲精品日韩久久| 日韩网站在线| 亚洲激情五月| 久久久成人网| 色婷婷精品视频| 精品欧美一区二区三区在线观看| 国产一区一一区高清不卡| 日韩专区欧美专区| 视频一区二区三区中文字幕| 中文在线一区| 免费高清在线一区| 日韩中文字幕1| 日韩专区一卡二卡| 水蜜桃久久夜色精品一区的特点| 91成人精品视频| 国产综合激情| 欧美日韩国产高清| 欧美va天堂| 亚洲成人精品| 日韩视频免费| 老司机精品久久| 日本99精品| 国产亚洲字幕| 国产一区二区三区探花| 国精品产品一区| 久久精品高清| 国产免费成人| 日韩精品亚洲专区| 久久av影院| 91精品国产自产在线观看永久∴| 午夜日韩福利| 欧美一区在线观看视频| 精品免费视频| av一区二区高清| 亚洲免费专区| 国产精品久久乐| 99久久婷婷这里只有精品| 红桃视频欧美| 国产精品一区免费在线| 999久久久免费精品国产| 中文字幕亚洲影视| 久久只有精品| 亚洲在线网站| 国产精品mm| 久久亚洲视频| 日韩深夜视频| 欧美自拍一区| 婷婷激情图片久久| 五月激激激综合网色播| 色乱码一区二区三区网站| 手机精品视频在线观看| 97精品97| 综合一区av| 欧美13videosex性极品| 亚洲ww精品| 午夜av一区| 国产精品久久久久久久免费观看 | 免费精品国产的网站免费观看| 亚洲精品一二| 亚洲欧洲一区| 日韩在线观看一区| 久久99蜜桃| 国产香蕉精品| 快she精品国产999| 久久久久久美女精品| 国产在线日韩精品| 国产精品成人3p一区二区三区| 亚洲v天堂v手机在线| 日韩视频中文| 亚洲欧美日韩国产一区二区| 少妇精品导航| 久久uomeier| 国语精品一区| 91中文字幕精品永久在线| 久久精品一区二区国产| 国产激情欧美| 国产极品久久久久久久久波多结野| 婷婷久久免费视频| 免费成人网www| 女人天堂亚洲aⅴ在线观看| 九色porny丨国产首页在线| 精品视频一区二区三区在线观看| 欧美午夜网站| 牛牛精品成人免费视频| 精品一区视频| 香蕉成人av| 在线综合亚洲| 亚洲精品影院在线观看| 日韩国产一二三区| 国产黄色一区| 国产精品字幕| 国产亚洲综合精品| 日韩精品免费观看视频| 视频一区二区三区中文字幕| 日韩手机在线| 欧美国产另类| 99久久激情| 激情91久久| 亚洲精品欧洲| 国产乱子精品一区二区在线观看 | 亚洲午夜黄色| av不卡在线| 日韩一区二区三免费高清在线观看| 日韩精品视频在线看| 国产精品欧美三级在线观看| 丰满少妇一区| 日本免费一区二区三区四区| 日韩欧美不卡| 99久精品视频在线观看视频| 玖玖玖国产精品| 麻豆久久久久久| 欧美成人日韩| 国产一区二区三区四区大秀| 私拍精品福利视频在线一区| 蜜桃一区二区三区在线| 精品亚洲二区| 欧美日韩精品一本二本三本| 日韩一区二区三区精品| 成人在线黄色| 亚洲欧洲av| 亚洲永久精品唐人导航网址| 国产高清视频一区二区| 91精品韩国| 国产色99精品9i| 欧美日韩精品免费观看视频完整| 国产麻豆一区二区三区精品视频| 99精品小视频| 精品日韩在线| 日韩精品午夜视频| 国精品一区二区三区| 美女精品视频在线| 免费人成在线不卡| 久久久久久久久丰满| 国产精品mv在线观看| 中文字幕一区二区三区在线视频| 性欧美videohd高精| 麻豆国产精品| 一区在线免费观看| 久久精品国内一区二区三区水蜜桃| 国产精品sss在线观看av| 亚洲ab电影| 中文一区二区| 亚洲免费激情| 在线 亚洲欧美在线综合一区| 国产精久久一区二区| 日韩福利视频一区| 日韩在线卡一卡二| 在线综合欧美| 国产精品免费看| 五月天综合网站| 亚洲大全视频| 久久亚洲视频| 夜久久久久久| 蜜桃久久精品一区二区| 亚洲在线观看|