日時データを経過時間に変換するPHPとJAVASCRIPTの方法

·

日時データ(2014-05-01 23:59:59)をTwitterなどで使われている「○秒前」「○分後」「○時間前」「○日前」のような表記に変換するには、以下のスクリプトを使う。

いずれも「created_at」に「2014-05-01 23:59:59」のような形式のデータを渡すものとする。

Javascriptで使う場合

JAVASCRIPT

function (created_at){
	var created_at = Date.parse(created_at);
	var now = (new Date()).getTime();
	var passage = (now - created_at) / 1000;
	if(passage < 60){
		passage = Math.ceil(passage);
		return passage + '秒前';
	}
	if(passage < 3600){
		passage = Math.ceil(passage / 60);
		return '約' + passage + '分前';
	}
	if(passage < 3600 * 24){
		passage = Math.ceil(passage / 3600);
		return '約' + passage + '時間前';
	}
	passage = Math.ceil(passage / ( 3600 * 24));
	return passage + '日前';
}

phpで使う場合

PHP

function created_time($created_at){
	
	$created = strtotime($created_at);
	$passage = time() - $created;
	
	if($passage < 60){
		$passage = round($passage);
		return $passage . "秒前";
	}
	if($passage < 3600){
		$passage = round($passage / 60);
		return "約" . $passage . "分前";
	}
	if($passage < 3600 * 24){
		$passage = round($passage / 3600);
		return "約" . $passage . "時間前";
	}
	$passage = round($passage / ( 3600 * 24));
	return $passage . "日前";
}