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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| let common = {
dateSerialization(date, format) { let dateObj; let DEFAULT_FORMAT = "y-mm-dd h:i:s"; let _patternArr = ["y", "mm", "dd", "h", "i", "s"]; let _patternMap = { y: function(d) { return d.getFullYear(); }, m: function(d) { return d.getMonth() + 1; }, mm: function(d) { return _pad(d.getMonth() + 1); }, d: function(d) { return d.getDate(); }, dd: function(d) { return _pad(d.getDate()); }, h: function(d) { return _pad(d.getHours()); }, i: function(d) { return _pad(d.getMinutes()); }, s: function(d) { return _pad(d.getSeconds()); } };
if (/^\d+$/.test(date)) { dateObj = new Date(parseInt(date)); } else if (typeof date == "string") { dateObj = new Date(date.replace(/-/g, "/")); } else if (_isDate(date)) { dateObj = date; }
if (!dateObj || dateObj.toString() == "Invalid Date") { throw new Error("[common.date.format]the input cannot be converted to date object(" + date + ")"); return; }
format = format || DEFAULT_FORMAT;
let _resultArr = format.split(/-|:|\s/); let resultObj = {}; let result = "";
_patternArr.forEach(k => { resultObj[k] = _patternMap[k](dateObj); });
_resultArr.forEach(k => { let regExp = new RegExp(k);
format = format.replace(regExp, function(e) { return resultObj[e]; }); });
return format; } };
function _toString(v) { return Object.prototype.toString.call(v); }
function _isDate(v) { return _toString(v) == "[object Date]"; }
function _pad(n) { return n > 9 ? n : "0" + n; }
export default common;
|