function fmtLong(ms) {
  var msAbs = Math.abs(ms);
  if (msAbs >= d) {
    return plural(ms, msAbs, d, 'day');
  }
  if (msAbs >= h$1) {
    return plural(ms, msAbs, h$1, 'hour');
  }
  if (msAbs >= m$1) {
    return plural(ms, msAbs, m$1, 'minute');
  }
  if (msAbs >= s) {
    return plural(ms, msAbs, s, 'second');
  }
  return ms + ' ms';
}
Respond to the Acceptable formats using an `obj`
of mime-type callbacks.

This method uses `req.accepted`, an array of
acceptable types ordered by their quality values.
When "Accept" is not present the _first_ callback
is invoked, otherwise the first match is used. When
no match is performed the server responds with
406 "Not Acceptable".

Content-Type is set for you, however if you choose
you may alter this within the callback using `res.type()`
or `res.set('Content-Type', ...)`.

   res.format({
     'text/plain': function(){
       res.send('hey');
     },

     'text/html': function(){
       res.send('<p>hey</p>');
     },

     'application/json': function () {
       res.send({ message: 'hey' });
     }
   });

In addition to canonicalized MIME types you may
also use extnames mapped to these types:

   res.format({
     text: function(){
       res.send('hey');
     },

     html: function(){
       res.send('<p>hey</p>');
     },

     json: function(){
       res.send({ message: 'hey' });
     }
   });

By default Express passes an `Error`
with a `.status` of 406 to `next(err)`
if a match is not made. If you provide
a `.default` callback it will be invoked
instead.

@param {Object} obj
@return {ServerResponse} for chaining
@public