我們有時在做網站時會碰到比較特別的需求,一條信息顯示是幾天和幾天后的或者一個月前的,上次做一個APP時就碰到了這周情況,留下當時用的代碼以便以后用時不需要東奔西走。
PHP代碼:
function calcTime($time)
{
$now = time(); //當前時間
$add = strtotime($time); //將時間轉為時間戳
$str = ”;
$timeSpan = $now – $add;
$days = floor($timeSpan / (24 * 3600 * 1000));? //計算相差的天數
if ($days < 1) {
$leave1 = $timeSpan % (24 * 3600 * 1000);
$hours = floor($leave1 / (3600 * 1000)); //計算出小時數
if ($hours < 1) {
//計算相差分鐘數
$leave2 = $leave1 % (3600 * 1000);
$minutes = floor($leave2 / (60 * 1000)); //計算小時數后剩余的毫秒數
if ($minutes <= 5) {
$str = “剛剛”;
} else {
$str = $minutes + “分鐘前”;
}
} else {
$str = $hours + “小時前”;
}
} else {
if ($days) {
if ($days < 30) {
$str = $days + “天前”;
} else {
$str = intval($days / 30) + “個月前”;
}
} else {
$str = “很久以前”;
}
}
return $str;
}
JS代碼:
function calcTime(time) {
var now = new Date();
var add = new Date(time);
var str = “”;
var timeSpan = now – add;
//計算出相差天數
var days = Math.floor(timeSpan / (24 * 3600 * 1000));
if (days < 1) {
//計算出小時數
var leave1 = timeSpan % (24 * 3600 * 1000);
//計算天數后剩余的毫秒數
var hours = Math.floor(leave1 / (3600 * 1000));
if (hours < 1) {
//計算相差分鐘數
var leave2 = leave1 % (3600 * 1000);
//計算小時數后剩余的毫秒數
var minutes = Math.floor(leave2 / (60 * 1000));
if (minutes <= 5) {
str = “剛剛”;
} else {
str = minutes + “分鐘前”;
}
} else {
str = hours + “小時前”;
}
} else {
if (days) {
if (days < 30) {
str = days + “天前”;
} else {
str = parseInt(days / 30) + “個月前”;
}
} else {
str = “很久以前”;
}
}
return str;
}