計算時(shí)間戳時(shí)間差轉年月日時(shí)分秒格式_網(wǎng)絡(luò )編程_奇迪科技(深圳)有限公司(m.cheanjie.com)
計算兩個(gè)時(shí)間戳的時(shí)間差,并且返回如下格式:X年X個(gè)月X天X小時(shí)X分鐘X秒
直接將時(shí)間相減可以嗎?不可以的,因為時(shí)間戳是從1970年開(kāi)始往后累計的秒數,要想得到特定格式的時(shí)間差,除了需要將兩個(gè)時(shí)間戳相減外以外,還需要做時(shí)間單位的換算才能轉換格式。即:將秒數都換算成年月日時(shí)分秒為單位。下面是一個(gè)計算時(shí)間差并且實(shí)現格式轉換的PHP自定義函數,使用該函數可以得到特定格式的時(shí)間差:
<?php /* 參數:$time1、$time1 要計算時(shí)間差的兩個(gè)時(shí)間戳 返回:時(shí)間差,格式:X年X個(gè)月X天X小時(shí)X分鐘X秒 */ function changeTime($time1,$time2){ $time = abs($time1 - $time2); $year = floor($time / 60 / 60 / 24 / 365); $time -= $year * 60 * 60 * 24 * 365; $month = floor($time / 60 / 60 / 24 / 30); $time -= $month * 60 * 60 * 24 * 30; $week = floor($time / 60 / 60 / 24 / 7); $time -= $week * 60 * 60 * 24 * 7; $day = floor($time / 60 / 60 / 24); $time -= $day * 60 * 60 * 24; $hour = floor($time / 60 / 60); $time -= $hour * 60 * 60; $minute = floor($time / 60); $time -= $minute * 60; $second = $time; $elapse = ''; $unitArr = array( '年'=>'year', '個(gè)月'=>'month', '周'=>'week', '天'=>'day', '小時(shí)'=>'hour', '分鐘'=>'minute', '秒'=>'second' ); foreach ( $unitArr as $cn => $u ){ if ( $$u > 0 ){ $elapse .= $$u . $cn; } } return $elapse; } ?>
該函數巧妙地使用了$$可變變量,簡(jiǎn)單有效地實(shí)現了所需功能。
用法說(shuō)明:該函數需要兩個(gè)參數time1和time2,即要計算 時(shí)間差的時(shí)間戳,這兩個(gè)時(shí)間不分先后,誰(shuí)大誰(shuí)小都可以。
演示實(shí)例:
<?php $time1= 1705570577; $time2= 1795564401; echo getTime($time1,$time2); ?>
運行結果:2年10個(gè)月1周4天14小時(shí)17分鐘4秒
本文版權所有,轉載須注明:來(lái)源 http://m.cheanjie.com/qvdv-oop-119.html