9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

お手軽に相対時刻を吐き出す関数

Last updated at Posted at 2013-04-26

こちらの記事の内容をかなり使わせていただきました
http://www.tinybeans.net/blog/2008/11/02-070720.html


function getRelativeTime(baseDateStr, targetDateStr){

	var baseDate = new Date(baseDateStr);
	var targetDate = new Date(targetDateStr);

	var elapsedTime = Math.ceil((baseDate.getTime() - targetDate.getTime())/1000);

	var message = null;

	// これ以下で一定時間未満のごとのメッセージの表示方法を条件分岐
	// 表示する数字が1桁のときは関数 digit で頭に半角スペースを付ける
	if (elapsedTime < 60) { //  1 分未満
		message =  'たった今';
	} else if (elapsedTime < 120) { //  2 分未満
		message =  '約 1分前';
	} else if (elapsedTime < (60*60)) { //  1 時間未満
		message =  '' + (Math.floor(elapsedTime / 60) < 10 ? ' ' : '') + Math.floor(elapsedTime / 60) + '分前';
	} else if (elapsedTime < (120*60)) { //  2 時間未満
		message =  '約 1時間前';
	} else if (elapsedTime < (24*60*60)) { //  1 日未満
		message =  '' + (Math.floor(elapsedTime / 3600) < 10 ? ' ' : '') + Math.floor(elapsedTime / 3600) + '時間前';
	} else if (elapsedTime < (7*24*60*60)) { // 1 週間未満
		message =  '' + (Math.floor(elapsedTime / 86400) < 10 ? ' ' : '') +Math.floor(elapsedTime / 86400) + '日前';
	} else { // 1 週間以上
		message =  '' + (Math.floor(elapsedTime / 604800) < 10 ? ' ' : '') + Math.floor(elapsedTime / 604800) + '週間前';
	}
	
	return message;
}

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?