-
-
Notifications
You must be signed in to change notification settings - Fork 17
/
index.js
43 lines (37 loc) · 1.06 KB
/
index.js
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;