Fixes issue #441: Dates were not parsed on sorting

This commit is contained in:
Jaime Fernández 2024-09-28 02:33:36 +02:00
parent 9220616bb5
commit 270aa52591

View File

@ -68,8 +68,16 @@ class OrderByAndLimitExp extends Expression {
return larger;
}
// if both are dates, then parse them for dates comparison
if (typeof valA === "string" && this.isDate(valA) &&
typeof valB === "string" && this.isDate(valB)) {
valA = new Date(valA);
valB = new Date(valB);
}
// if both are numbers, then parse them for numerical comparison
if (typeof valA === "string" && this.isNumber(valA) &&
else if (typeof valA === "string" && this.isNumber(valA) &&
typeof valB === "string" && this.isNumber(valB)) {
valA = parseFloat(valA);
valB = parseFloat(valB);
@ -99,6 +107,10 @@ class OrderByAndLimitExp extends Expression {
return noteSet;
}
isDate(date: number | string) {
return (new Date(date) !== "Invalid Date") && !isNaN(new Date(date));
}
isNumber(x: number | string) {
if (typeof x === 'number') {
return true;