Blame view

node_modules/time-stamp/index.js 1.06 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  /*!
   * time-stamp <https://github.com/jonschlinkert/time-stamp>
   *
   * Copyright (c) 2015-2018, Jon Schlinkert.
   * Released under the MIT License.
   */
  
  'use strict';
  
  var dateRegex = /(?=(YYYY|YY|MM|DD|HH|mm|ss|ms))\1([:\/]*)/g;
  var timespan = {
    YYYY: ['getFullYear', 4],
    YY: ['getFullYear', 2],
    MM: ['getMonth', 2, 1], // getMonth is zero-based, thus the extra increment field
    DD: ['getDate', 2],
    HH: ['getHours', 2],
    mm: ['getMinutes', 2],
    ss: ['getSeconds', 2],
    ms: ['getMilliseconds', 3]
  };
  
  var timestamp = function(str, date, utc) {
    if (typeof str !== 'string') {
      date = str;
      str = 'YYYY-MM-DD';
    }
  
    if (!date) date = new Date();
    return str.replace(dateRegex, function(match, key, rest) {
      var args = timespan[key];
      var name = args[0];
      var chars = args[1];
      if (utc === true) name = 'getUTC' + name.slice(3);
      var val = '00' + String(date[name]() + (args[2] || 0));
      return val.slice(-chars) + (rest || '');
    });
  };
  
  timestamp.utc = function(str, date) {
    return timestamp(str, date, true);
  };
  
  module.exports = timestamp;