44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
/*!
|
|
* 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;
|