function relative_time( time_value ) {

  var values      = time_value.split( " " );
  time_value      = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse( time_value );
  var relative_to = ( arguments.length > 1 ) ? arguments[1] : new Date();
  var delta       = parseInt( ( relative_to.getTime() - parsed_date ) / 1000 );
  delta           = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta < 60) {
    return '1分以内';
  } else if( delta < 120 ) {
    return '約1分前';
  } else if( delta < ( 60*60 ) ) {
    return ( parseInt( delta / 60 ) ).toString() + '分前';
  } else if( delta < (120*60 ) ) {
    return '約1時間前';
  } else if( delta < ( 24*60*60 )) {
    return '約' + ( parseInt(delta / 3600 )).toString() + '時間前';
  } else if( delta < ( 48*60*60 ) ) {
    return '1日前';
  } else {
    return ( parseInt( delta / 86400 ) ).toString() + '日前';
  }
}
