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

站長資訊網
最全最豐富的資訊網站

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

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

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

Calendar是一套關于日期歷法的擴展,但是對于我們來說,它沒有農歷的相關操作,所以對于我們中國人來說這個擴展并沒有什么實際的作用。不過這并不妨礙我們去了解學習它。

日期歷法類型

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

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

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

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

Calendar 擴展已經集成在 PHP 安裝包中了,不需要特別的單獨去安裝。如果你無法使用 Calendar 相關的函數,可以重新編譯 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 。具體的內容就不深究了,畢竟我們在日常生活中是完全接觸不到這種歷法的。

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

日期歷法轉換

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

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

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

// 獲取當前猶太歷時間 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 號 星期三 。當前的月份是 Tishri 提市黎月 ,對應著公歷年的第一個月,猶太歷中教會年的第七個月,代表著秋天的到來。

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計數 的日期轉換成 unix 時間。

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

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

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

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

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

某個月份的天數

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

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

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

復活節彩蛋

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

// 指定年份的復活節時間戳 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日到復活節之間的天數 echo easter_days(2019), PHP_EOL;        // 31 echo easter_days(2020), PHP_EOL;        // 22 echo easter_days(2021), PHP_EOL;        // 14

easter_date() 函數就是返回指定年份的復活節日期。而 easter_days() 函數則是返回從當年公歷的 3月21日 到復活節之間的天數。

復活節是每年春分月圓后的第一個星期日,而春分一般是在3月21日,這就簡化為只要計算滿月的日期和緊挨的星期日的日期就可以得到每年復活節的具體日期了。這種函數在西方世界的軟件開發中會非常常用,其實就像我們需要獲取每年春節的具體公歷日期一樣。

總結

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

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
精品三级久久久| 国产精品综合色区在线观看| 精品国产一区二区三区2021| 欧美黄页在线免费观看| 国产日韩免费| 国产精品免费99久久久| 国产精品xxxav免费视频| 久久久久97| 高清精品久久| 麻豆精品av| 精品国产精品久久一区免费式| 久久不卡日韩美女| 日本激情一区| 久久精品观看| 国产免费成人| 午夜性色一区二区三区免费视频| 亚洲18在线| 国产精品高清一区二区| 中文在线资源| 日韩天堂av| 日韩精品久久久久久| 国产精品久久久久久模特| 国产盗摄——sm在线视频| 成人羞羞视频播放网站| 久久精品一区二区不卡| 亚洲欧美网站| 国产精品美女久久久久久不卡| 国产中文在线播放| 欧美特黄视频| 青青草国产成人99久久| 国产一区二区精品久| 免费精品国产的网站免费观看| 日韩精品一级中文字幕精品视频免费观看| 亚洲精品免费观看| 麻豆国产精品一区二区三区| www成人在线视频| 综合一区av| 美女久久久精品| 久久精品国产99久久| 好看不卡的中文字幕| 日本伊人久久| 97精品一区二区| 国产亚洲精品久久久久婷婷瑜伽| 日本一区二区三区中文字幕| 精品一区电影| 国产亚洲激情| 久久中文字幕一区二区三区| 激情自拍一区| 国产日产高清欧美一区二区三区| 精品国产99| 日韩在线观看一区二区| 国产精品成人一区二区网站软件| 久久久久亚洲| 91大神在线观看线路一区| 久久精品国产成人一区二区三区| 成人福利av| 亚洲一区欧美| 欧美一区久久久| 亚洲欧美一级| 丝袜美腿一区| 欧美日本一区| 在线国产一区| 国产精选在线| 91福利精品在线观看| 亚洲天堂成人| 久久久免费人体| 蜜臀精品一区二区三区在线观看| 日韩av有码| 深夜日韩欧美| 精品国产免费人成网站| 亚州欧美在线| 久久免费高清| 老司机精品视频在线播放| 国产亚洲毛片在线| 色偷偷色偷偷色偷偷在线视频| 最新国产精品久久久| 欧美sss在线视频| 国产精品jk白丝蜜臀av小说| 亚洲欧洲午夜| 成人福利av| 国产精品久久亚洲不卡| 免费观看在线色综合| 私拍精品福利视频在线一区| 老司机精品在线| 天堂av一区| 亚洲综合二区| 欧美sss在线视频| 精品国产三区在线| 婷婷成人av| 黄色成人精品网站| 四虎国产精品免费观看| 欧美精品影院| 另类av一区二区| 久久中文亚洲字幕| av综合电影网站| 久久久免费人体| 国产欧美久久一区二区三区| 国产精品美女| 国产精品91一区二区三区| 欧美激情一区| 日本免费在线视频不卡一不卡二| 久久亚洲美女| 巨乳诱惑日韩免费av| 九九久久婷婷| 91精品国产91久久久久久黑人| 97精品国产| 国产一区二区三区91| 久久伊人亚洲| 麻豆精品蜜桃视频网站| 国产精品嫩草影院在线看| 亚洲精品少妇| 免费人成黄页网站在线一区二区 | 清纯唯美亚洲综合一区| 久久国产精品久久w女人spa| 亚洲精品小说| 在线观看免费一区二区| 国产一区欧美| 欧美日韩三区| 久久成人亚洲| 亚洲理论在线| 蜜桃视频在线观看一区| 一区二区不卡| 亚洲精品大片| 欧美一级二级视频| 97成人在线| 国产精品欧美在线观看| 久久不见久久见中文字幕免费 | 在线免费观看亚洲| 一区二区精品| 青草国产精品| 老司机精品视频网| 国产色播av在线| 四虎884aa成人精品最新| 韩日一区二区三区| 亚洲二区三区不卡| 日韩专区欧美专区| 亚洲ww精品| 国产精品一区二区美女视频免费看| 日本高清久久| 国产精品magnet| 精品国产美女a久久9999| 麻豆精品视频在线观看视频| 高清一区二区三区av| 日韩毛片视频| 欧美女激情福利| 日本一不卡视频| 麻豆成人在线观看| 另类中文字幕国产精品| 欧美高清一区| 一区二区日韩免费看| 国产精品va视频| 久久精品中文| 亚洲综合图色| 免费在线欧美黄色| 成人免费电影网址| 一区二区高清| 欧美亚洲三级| 日本综合字幕| 中文字幕一区二区三区四区久久| 国产福利亚洲| av一区二区高清| 日韩一区二区三区精品| 麻豆国产精品视频| 亚洲国产综合在线看不卡| 中文字幕乱码亚洲无线精品一区| 久久精品资源| 国产精品日韩久久久| 国产精品手机在线播放| 91精品国产91久久久久久黑人| 久久先锋影音| 粉嫩av一区二区三区四区五区 | 国产精品永久| 久久久一二三| 日韩三级视频| 亚洲www啪成人一区二区| 婷婷五月色综合香五月| 福利精品一区| 喷白浆一区二区| 日本黄色精品| 中文一区一区三区免费在线观 | 日韩一二三区在线观看| 国产一区二区精品福利地址| 亚洲在线一区| 国精品产品一区| 石原莉奈一区二区三区在线观看| 精品一区电影| 一区二区国产在线观看| 日韩欧美一区二区三区免费看| 日本成人手机在线| 婷婷成人基地| 国产精品s色| 香蕉国产精品| 精品一级视频| 日韩欧美中文字幕电影| 日韩精品欧美激情一区二区| 日韩av中文在线观看| 黄色成人91| 亚洲一级少妇| 麻豆精品在线视频| 日韩精品一区二区三区中文在线 |