JS & PHP 時間戳記處理

JS & PHP 時間戳記處理

JS & PHP: Micro seconds Vs Milli seconds

當我們在串API時,很常遇到時戳記的問題,最主要的原因是使用Javascript的時候通常大家都用。

let ts = new Date().getTime();//1512971988970

而在使用PHP時有幾個選擇可以用:

time(); //1512972048
strtotime('now'); //1512972326
microtime(ture); //1512972377.2626

  但是在PHP內一般都以秒(10位)為單位,不像在JS內以毫秒(13位)為單位。即使是使用到microtime(),結果也是到毫秒的下一位(14位)。所以一般筆者在使用的時候都會因為懶惰就直接用time()*1000處理,去補足位數,後來看到同事有比較好的寫法來分享一下:

$ts = str_replace('.', '', microtime(true)); // "15129726568229"
$ts = substr($ts, 0, 13); //"1512972656822"

這樣就可以更精準的取到和JS一樣的位數了。

註:由於筆者再寫的時候是使用Javascript傳遞API,所以在PHP端改寫值。