• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

php把日期格式化成xx天前的格式

PHP 水墨上仙 1307次浏览 0个评论

这段代码可以把时间格式化成3天前,5秒前,2年前的形式

// convert a date into a string that tells how long ago that date was.... eg: 2 days ago, 3 minutes ago.
function ago($d) {
	$c = getdate();
	$p = array('year', 'mon', 'mday', 'hours', 'minutes', 'seconds');
	$display = array('year', 'month', 'day', 'hour', 'minute', 'second');
	$factor = array(0, 12, 30, 24, 60, 60);
	$d = datetoarr($d);
	for ($w = 0; $w < 6; $w++) {
		if ($w > 0) {
			$c[$p[$w]] += $c[$p[$w-1]] * $factor[$w];
			$d[$p[$w]] += $d[$p[$w-1]] * $factor[$w];
		}
		if ($c[$p[$w]] - $d[$p[$w]] > 1) { 
			return ($c[$p[$w]] - $d[$p[$w]]).' '.$display[$w].'s ago';
		}
	}
	return '';
}
 
// you can replace this if need be. This converts my dates returned from a mysql date string into 
//   an array object similar to that returned by getdate().
function datetoarr($d) {
	preg_match("/([0-9]{4})(\\-)([0-9]{2})(\\-)([0-9]{2}) ([0-9]{2})(\\:)([0-9]{2})(\\:)([0-9]{2})/", $d, $matches);
    return array( 
		'seconds' => $matches[10], 
		'minutes' => $matches[8], 
		'hours' => $matches[6],  
		'mday' => $matches[5], 
		'mon' => $matches[3],  
		'year' => $matches[1], 
	);
}


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明php把日期格式化成xx天前的格式
喜欢 (0)

您必须 登录 才能发表评论!

加载中……