2013年7月16日 星期二

PHP 計算日期差距的方法

使用 PHP/cURL 可以從 Yahoo 股市可以抓到一家企業的上市日期 $listed_date (注意是民國年), 但要計算這家公司已上市幾年, 這在 PHP 要怎麼寫? 翻了一下書, 發現其實這很簡單, 只要利用 time() 跟 mktime() 這兩個函數就可以辦到 :

//計算已上市年數
list($Y,$M,$D)=explode("/",$listed_date); //拆分 83/09/05 (年/月/日)
$Y=$Y+1911; //轉成西元年
$listed_time=mktime(0,0,0,$M,$D,$Y); //計算 1970/1/1 以來至上市日秒數
$listed_years=round((time()-$listed_time)/3600/24/365,1); //四捨五入至小數一位
echo "上市日期=$Y-$M-$D (已上市 $listed_years 年)";

其中 time() 是計算 1970/1/1 至目前之秒數, 減掉至上市日秒數, 就是上市至今的秒數, 除以 31536000 即得上市年數. 通常上市兩年以上的企業才值得進一步評估, 新上市股宜剔除.

沒有留言 :