在上一篇文章《PHP如何輸出20世紀的所有閏年》中,我們介紹了一種判斷給定年份是不是閏年的方法。這次我們介紹另一種判斷年份是否為閏年的方法。
上文我們介紹了判斷閏年的一種通用演算法,可以運用在其他語言中;本文為大家介紹一種PHP特有的方法,我們利用內建函數date()來判斷閏年,然後找出21世紀的所有閏年並印製出來。
想法:
閏年的2月有29天,我們可以利用這個特性,使用date()取得給定年份$year中2月所包含的天數,判斷該天數是否為29天,這樣就可以判斷給定年份$year是否為閏年了。
使用for循環給出21世紀的所有年份(2001年~2100年),然後使用上面的方法一一判斷是否為閏年,將符合要求(是閏年)的年份輸出。
實作方法:
<?php header("Content-type:text/html;charset=utf-8"); for($year = 2001; $year <= 2100; $year++){ $time = strtotime("{$year}-02"); //取得一个日期的 Unix 时间戳; if (date("t",$time)==29){ //格式化时间,并且判断2月是否是29天; echo $year."是闰年!<br>"; //是29天就输出时闰年; } } ?>
我們來看看輸出結果:
##OK,實作了!上例中,strtotime("{$year}-02")語句是將「xxxx-02」格式的日期轉換為Unix 時間戳記;然後就可使用
date("t" ,$time)語句來取得$year年2月所包含的天數了,使用if語句判斷該天數是否等於29天,即可判斷$year是否為閏年。
t」字元參數可以用來取得給定月份中包含的天數,該函數內建了許多這樣用來
控制輸出日期字符字串格式的字元。其實有一個字元「L」就可以用來判斷是否是閏年(如果是閏年則為 1,否則為 0)。
<?php header("Content-type:text/html;charset=utf-8"); for($year = 2001; $year <= 2100; $year++){ $time = strtotime("{$year}-02"); if (date("L",$time)){ echo $year."是闰年<br>"; } } ?>
以上是PHP巧用date()函數計算閏年,印製21世紀的所有閏年的詳細內容。更多資訊請關注PHP中文網其他相關文章!