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