时间差异计算

项目需求:需要显示聊天记录是多久之前发的消息
计算消息发送时间到现在时间相差的(秒,分钟,小时,天,周,月,年,十年)数

function ago($now_time, $ago_time){
	$periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
	$lengths = array("60", "60", "24", "7", "4.35", "12", "10");
	
	$difference = $now_time - $ago_time;
	$tense = "ago";
	
	for($j = 0; $difference >= $lengths[$j] && $j < count($lengths) - 1; $j++) {
		$difference /= $lengths[$j];	//相差数超过60秒就按分钟计算,依次往后推小时,天...
	}
	
	$difference = round($difference);
	
	if($difference !=1) {
		$periods[$j] .= "s";
	}
	
	return "$difference $periods[$j] 'ago'";
}

$now_time = time(); 
$ago_time = "1697089982";
$res = ago($now_time, $ago_time);
print_r($res);

// 输出结果例如下:
// 53 minutes 'ago'

你可能感兴趣的:(PHP,php)