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);
その他の使い方は参考元ライブラリと同様なので、上記の公式リポジトリを参照されたし。