Nicetimeは時間を渡すと○秒前とか○分前とかに変換してくれるライブラリ。
しかしネット上に転がっているもので日本語のものが無いので、日本語化&Angularのサービス化を
ベースにしたのは下記ライブラリ。というか秒カウントを追加した以外、英語の部分しか変更してない件。
https://github.com/robinduckett/nicetime
coreServices.service('niceTime', function() { return function(duration, to) { var nicetime = function(duration, to) { if (to == null) { return niceify(duration); } else if (duration != null && to != null) { var from = duration; var to = to; return niceify(to - from); } else if (duration == null && to != null) { var from = new Date().getTime() / 1000; var to = to; return niceify(to - from); } } var niceify = function(duration) { var past = false; if (duration < 0) { past = true; duration = Math.abs(duration); } duration = new Number(duration).toFixed(2); var durstr = ''; var second = 1, minute = second * 60, hour = minute * 60, day = hour * 24; if (duration < minute) { durstr = Math.ceil(duration) + '秒'; } else if (duration < minute * 2) { durstr = '1分'; } else if (duration < hour) { durstr = Math.floor(duration / minute) + '分'; } else if (duration < hour * 2) { durstr = '1時間'; } else if (duration < day) { durstr = Math.floor(duration / hour) + '時間'; } else if (duration < day * 2) { durstr = '1日'; } else if (duration < day * 365) { durstr = Math.floor(duration / day) + '日'; } else { durstr = '1年以上'; } if (past == true) durstr += '前'; return durstr; } return nicetime(duration, to); } });
使い方は下記の通り。
指定した時間からの経過時間を知りたい場合。
// 第1引数にnull、第2引数にターゲット時間の秒数を渡せばOK。 niceTime(null, createdAt.getTime()/1000);
その他の使い方は参考元ライブラリと同様なので、上記の公式リポジトリを参照されたし。