1. 程式人生 > 其它 >php解決2038年後時間轉化時間戳以及時間搓轉化時間的問題,超級詳細

php解決2038年後時間轉化時間戳以及時間搓轉化時間的問題,超級詳細

首先編寫兩個函式如下:

/**
 * # +========================================================================
 * # | - @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');