php解決2038年後時間轉化時間戳以及時間搓轉化時間的問題,超級詳細
阿新 • • 發佈:2021-08-09
首先編寫兩個函式如下:
/** * # +======================================================================== * # | - @NodeAnotation(title="時間戳轉化時間") * # | - @author cq <[email protected]> * # | - @copyright zmtek 2021-08-09 * # +------------------------------------------------------------------------ * # | - 1.此函式相當於date(),用法一樣 * # +========================================================================*/ function systemdate($curformat, $utc_value) { while(1) { if($utc_value > 2147483647) { if(@date('Y', $utc_value) < 2038) { $mydate2 = new DateTime('@'.$utc_value); $string = $mydate2->format($curformat);break; } } $string = date($curformat, $utc_value); break; } return $string; } /** * # +======================================================================== * # | - @NodeAnotation(title="時間轉化時間戳") * # | - @author cq <[email protected]> * # | - @copyright zmtek 2021-08-09 * # +------------------------------------------------------------------------ * # | - 1.此函式相當於strtotime(),用法一樣 * # +========================================================================*/ function systemstrtotime($str_time){ $result = strtotime($str_time); if(empty($result)){ $date = new DateTime($str_time); $result = $date->format('U'); } return $result; }
然後開始呼叫就可以了
# 時間搓轉換日期 echo systemdate('Y-m-d',4782079738); # 日期轉換時間搓 echo systemstrtotime('2100-01-01');