1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /*!
- * time-stamp <https://github.com/jonschlinkert/time-stamp>
- *
- * Copyright (c) 2015-2017, Jon Schlinkert.
- * Released under the MIT License.
- */
- 'use strict';
- /**
- * Parse the given pattern and return a formatted
- * timestamp.
- *
- * @param {String} `pattern` Date pattern.
- * @param {Date} `date` Date object.
- * @return {String}
- */
- module.exports = function(pattern, date) {
- if (typeof pattern !== 'string') {
- date = pattern;
- pattern = 'YYYY:MM:DD';
- }
- if (!date) date = new Date();
- function timestamp() {
- var regex = /(?=(YYYY|YY|MM|DD|HH|mm|ss|ms))\1([:\/]*)/;
- var match = regex.exec(pattern);
- if (match) {
- var increment = method(match[1]);
- var val = '00' + String(date[increment[0]]() + (increment[2] || 0));
- var res = val.slice(-increment[1]) + (match[2] || '');
- pattern = pattern.replace(match[0], res);
- timestamp();
- }
- }
- timestamp(pattern);
- return pattern;
- };
- function method(key) {
- return ({
- YYYY: ['getFullYear', 4],
- YY: ['getFullYear', 2],
- // getMonth is zero-based, thus the extra increment field
- MM: ['getMonth', 2, 1],
- DD: ['getDate', 2],
- HH: ['getHours', 2],
- mm: ['getMinutes', 2],
- ss: ['getSeconds', 2],
- ms: ['getMilliseconds', 3]
- })[key];
- }
|