PHP是一個在web開發中最為常用的腳本語言之一,可以說PHP是web的基礎,無論是WordPress、Yii、Laravel等框架及很多網站中都有PHP的身影,因此,對于PHP中的一些關鍵函數,如date函數,掌握程度不僅僅是程序員所必選的技能之一,更是一門基礎技能,下面我們就來介紹一下date函數中的參數U。
echo date('U'); // 輸出當前時間的UNIX時間戳,如1587069971
UNIX時間戳是指從1970年1月1日0時0分0秒(北京時間1970年1月1日8時0分0秒)起至現在的總秒數,它是一個整數,這個時間戳在計算機里特別常用,因為它可以表示任意兩個時間點之間相差的秒數,這樣就可以算出任意時間段內經過的秒數,如下面的例子:
echo date('U',strtotime('2020-01-01')); // 輸出1577808000 echo date('U',strtotime('2020-04-17')); // 輸出1587072000 echo (1587072000-1577808000)/(60*60*24); // 輸出107
這里我們用到了strtotime函數,該函數用于把描述時間的字符串轉換為UNIX時間戳,如上面的例子,strtotime('2020-01-01')返回的時間戳是2020年1月1日0時0分0秒所對應的UNIX時間戳,1577808000正是這個時間戳;strtotime('2020-04-17')返回的時間戳是2020年4月17日0時0分0秒所對應的UNIX時間戳,1587072000正是這個時間戳。在最后的echo語句中我們用了兩個時間戳相減,再除以60*60*24(1天等于24小時,1小時等于60分鐘,1分鐘等于60秒),就可以得到任意兩個日期之間相差的天數。
有了U參數,我們還可以實現一些更為有趣的功能,如計算目前距離下一年春節的時間。我們可以得到下一年春節月份和日期(春節的月份和日期每年都不同,公歷1月1日到2月12日之間),然后用當前年份加上所得到的月份、日期,再把這個日期轉換為UNIX時間戳,最后用這個時間戳減去當前時間的時間戳,就可以得到距離下一年春節的秒數了。
$year=date('Y')+1; if(date('m')<=1 || (date('m')==2 && date('d')<12)){ // 判斷是否已過春節 $month=1; $day=24; }else{ $help_arr=explode(',',file_get_contents('./spring.json')); // 從文件中讀取春節月份和日期 $month=$help_arr[0]; $day=$help_arr[1]; } $next_spring=date('U',strtotime($year.'-'.$month.'-'.$day)); // 得到距離下一年春節的秒數 echo round(($next_spring-date('U'))/86400).'天'; // 把距離下一年春節的秒數轉換為天數,并四舍五入
春節的月份和日期我們放在spring.json文件中,這樣可以方便地修改春節時間,如2020年春節時間為1月25日,我們把文件中的內容修改為“1,25”即可。
總之,date函數中的參數U是一個十分有用的參數,它可以用于計算任意兩個時間點的相差的秒數,進而實現很多有趣的功能,我們一定要好好掌握和利用。