1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00

Change how months are subtracted in SearchManager

This commit is contained in:
gras 2024-03-31 19:15:59 +02:00
parent ae1309b011
commit 84928e6371
3 changed files with 14 additions and 1 deletions

View File

@ -779,7 +779,7 @@ export class SearchManager {
break; break;
case DatePatternFrequency.months_ago: case DatePatternFrequency.months_ago:
to.setUTCMonth(to.getUTCMonth() - tq.agoNumber); to.setTime(Utils.addMonthToDate(to, -1 * tq.agoNumber).getTime());
break; break;
case DatePatternFrequency.years_ago: case DatePatternFrequency.years_ago:

View File

@ -220,6 +220,19 @@ export class Utils {
return dayOfYear; return dayOfYear;
} }
//Adding months to a date differently from standard JS
//this function makes sure that if date is the 31st and you add a month, you will get the last day of the next month
//so adding or subtracting a month from 31st of march will give 30th of april or 28th of february respectively (29th on leap years).
static addMonthToDate(date: Date, numMonths: number) {
let result = new Date(date)
const expectedMonth = ((date.getMonth() + numMonths) % 12 + 12) % 12; //inner %12 + 12 makes correct handling of negative months
result.setMonth(result.getMonth() + numMonths);
if (result.getMonth() !== expectedMonth) {
result.setDate(0);
}
return result;
}
static renderDataSize(size: number): string { static renderDataSize(size: number): string {
const postFixes = ['B', 'KB', 'MB', 'GB', 'TB']; const postFixes = ['B', 'KB', 'MB', 'GB', 'TB'];
let index = 0; let index = 0;

Binary file not shown.