users() optimized parseDateTime function
This commit is contained in:
parent
0e9f3c0ff7
commit
c9da7a37bc
@ -207,7 +207,7 @@
|
||||
<div class="title">Downloads last month</div>
|
||||
</div>
|
||||
<div class="col-xl-4 col-lg-4 col-md-4 col-12">
|
||||
<div class="numbers">266</div>
|
||||
<div class="numbers">267</div>
|
||||
<div class="title">Dependends</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
13
lib/users.js
13
lib/users.js
@ -31,7 +31,8 @@ let _winDateFormat = {
|
||||
dateSeperator: '',
|
||||
timeFormat: '',
|
||||
timeSeperator: '',
|
||||
amDesignator: ''
|
||||
amDesignator: '',
|
||||
pmDesignator: ''
|
||||
};
|
||||
|
||||
// --------------------------
|
||||
@ -40,7 +41,7 @@ let _winDateFormat = {
|
||||
function getWinCulture() {
|
||||
return new Promise((resolve) => {
|
||||
process.nextTick(() => {
|
||||
if (!_winDateFormat) {
|
||||
if (!_winDateFormat.dateFormat) {
|
||||
util.powerShell('(get-culture).DateTimeFormat')
|
||||
.then(data => {
|
||||
let lines = data.toString().split('\r\n');
|
||||
@ -49,6 +50,7 @@ function getWinCulture() {
|
||||
_winDateFormat.timeFormat = util.getValue(lines, 'ShortTimePattern', ':');
|
||||
_winDateFormat.timeSeperator = util.getValue(lines, 'TimeSeparator', ':');
|
||||
_winDateFormat.amDesignator = util.getValue(lines, 'AMDesignator', ':');
|
||||
_winDateFormat.pmDesignator = util.getValue(lines, 'PMDesignator', ':');
|
||||
|
||||
resolve(_winDateFormat);
|
||||
})
|
||||
@ -288,10 +290,13 @@ function users(callback) {
|
||||
getWinCulture()
|
||||
.then(culture => {
|
||||
result = parseUsersWin(lines, culture);
|
||||
if (callback) { callback(result); }
|
||||
resolve(result);
|
||||
});
|
||||
} else {
|
||||
if (callback) { callback(result); }
|
||||
resolve(result);
|
||||
}
|
||||
if (callback) { callback(result); }
|
||||
resolve(result);
|
||||
});
|
||||
} catch (e) {
|
||||
if (callback) { callback(result); }
|
||||
|
||||
27
lib/util.js
27
lib/util.js
@ -135,9 +135,8 @@ function detectSplit(str) {
|
||||
return seperator;
|
||||
}
|
||||
|
||||
function parseTime(t, timeFormat, timeSeperator) {
|
||||
timeFormat = timeFormat || '';
|
||||
timeSeperator = timeSeperator || '';
|
||||
function parseTime(t, pmDesignator) {
|
||||
pmDesignator = pmDesignator || '';
|
||||
t = t.toUpperCase();
|
||||
let hour = 0;
|
||||
let min = 0;
|
||||
@ -147,7 +146,7 @@ function parseTime(t, timeFormat, timeSeperator) {
|
||||
if (parts[2]) {
|
||||
parts[1] += parts[2];
|
||||
}
|
||||
let isPM = (parts[1] && (parts[1].toLowerCase().indexOf('pm') > -1) || (parts[1].toLowerCase().indexOf('p.m.') > -1) || (parts[1].toLowerCase().indexOf('p. m.') > -1) || (parts[1].toLowerCase().indexOf('n') > -1) || (parts[1].toLowerCase().indexOf('ch') > -1) || (parts[1].toLowerCase().indexOf('ös') > -1) || timeSeperator);
|
||||
let isPM = (parts[1] && (parts[1].toLowerCase().indexOf('pm') > -1) || (parts[1].toLowerCase().indexOf('p.m.') > -1) || (parts[1].toLowerCase().indexOf('p. m.') > -1) || (parts[1].toLowerCase().indexOf('n') > -1) || (parts[1].toLowerCase().indexOf('ch') > -1) || (parts[1].toLowerCase().indexOf('ös') > -1) || (pmDesignator && parts[1].toLowerCase().indexOf(pmDesignator) > -1));
|
||||
hour = parseInt(parts[0], 10);
|
||||
min = parseInt(parts[1], 10);
|
||||
hour = isPM && hour < 12 ? hour + 12 : hour;
|
||||
@ -163,8 +162,7 @@ function parseDateTime(dt, culture) {
|
||||
culture = culture || {};
|
||||
let dateFormat = (culture.dateFormat || '').toLowerCase();
|
||||
let timeFormat = (culture.timeFormat || '');
|
||||
// let dateSeperator = (culture.dateSeperator || '');
|
||||
let timeSeperator = (culture.timeSeperator || '');
|
||||
let pmDesignator = (culture.pmDesignator || '');
|
||||
|
||||
const parts = dt.split(' ');
|
||||
if (parts[0]) {
|
||||
@ -175,13 +173,18 @@ function parseDateTime(dt, culture) {
|
||||
if (dtparts[0].length === 4) {
|
||||
// Dateformat: yyyy/mm/dd
|
||||
result.date = dtparts[0] + '-' + ('0' + dtparts[1]).substr(-2) + '-' + ('0' + dtparts[2]).substr(-2);
|
||||
} else if (dtparts[2].length === 2 || dateFormat.indexOf('/mm/') > -1) {
|
||||
// Dateformat: dd/mm/yy
|
||||
result.date = '20' + dtparts[2] + '-' + ('0' + dtparts[1]).substr(-2) + '-' + ('0' + dtparts[0]).substr(-2);
|
||||
} else if (dtparts[2].length === 2) {
|
||||
if ((dateFormat.indexOf('/d/') > -1 || dateFormat.indexOf('/dd/') > -1)) {
|
||||
// Dateformat: mm/dd/yy
|
||||
result.date = '20' + dtparts[2] + '-' + ('0' + dtparts[1]).substr(-2) + '-' + ('0' + dtparts[0]).substr(-2);
|
||||
} else {
|
||||
// Dateformat: dd/mm/yy
|
||||
result.date = '20' + dtparts[2] + '-' + ('0' + dtparts[1]).substr(-2) + '-' + ('0' + dtparts[0]).substr(-2);
|
||||
}
|
||||
} else {
|
||||
// Dateformat: mm/dd/yyyy or dd/mm/yyyy
|
||||
const isEN = ((dt.toLowerCase().indexOf('pm') > -1) || (dt.toLowerCase().indexOf('p.m.') > -1) || (dt.toLowerCase().indexOf('p. m.') > -1) || (dt.toLowerCase().indexOf('am') > -1) || (dt.toLowerCase().indexOf('a.m.') > -1) || (dt.toLowerCase().indexOf('a. m.') > -1));
|
||||
if (isEN || dateFormat.indexOf('/d/') > -1 || dateFormat.indexOf('/dd/') > -1) {
|
||||
if ((isEN || dateFormat.indexOf('/d/') > -1 || dateFormat.indexOf('/dd/') > -1) && dateFormat.indexOf('dd/') !== 0) {
|
||||
// Dateformat: mm/dd/yyyy
|
||||
result.date = dtparts[2] + '-' + ('0' + dtparts[0]).substr(-2) + '-' + ('0' + dtparts[1]).substr(-2);
|
||||
} else {
|
||||
@ -198,7 +201,7 @@ function parseDateTime(dt, culture) {
|
||||
// Dateformat: mm.dd.yyyy
|
||||
result.date = dtparts[2] + '-' + ('0' + dtparts[0]).substr(-2) + '-' + ('0' + dtparts[1]).substr(-2);
|
||||
} else {
|
||||
// Dateformat: dd.mm.yyyy
|
||||
// Dateformat: dd.mm.yyyy
|
||||
result.date = dtparts[2] + '-' + ('0' + dtparts[1]).substr(-2) + '-' + ('0' + dtparts[0]).substr(-2);
|
||||
}
|
||||
}
|
||||
@ -214,7 +217,7 @@ function parseDateTime(dt, culture) {
|
||||
if (parts[1]) {
|
||||
parts.shift();
|
||||
let time = parts.join(' ');
|
||||
result.time = parseTime(time, timeFormat, timeSeperator);
|
||||
result.time = parseTime(time, pmDesignator);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user