From dbaf43c03e7350a0b5df9c18cbb777436c837b70 Mon Sep 17 00:00:00 2001 From: Angelo Zambrano Date: Sat, 6 Jun 2020 16:32:20 -0500 Subject: [PATCH 1/2] Date-fns: Done ! --- src/assets/test.png | Bin 0 -> 9866 bytes src/filter.js | 59 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/assets/test.png diff --git a/src/assets/test.png b/src/assets/test.png new file mode 100644 index 0000000000000000000000000000000000000000..ae706212781fa5d59632a6c08fe0ef3dab0cd63f GIT binary patch literal 9866 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 literal 0 HcmV?d00001 diff --git a/src/filter.js b/src/filter.js index 13e106b..ce38b13 100644 --- a/src/filter.js +++ b/src/filter.js @@ -1,6 +1,63 @@ +const { format, sub, startOfYear, endOfYear, startOfMonth } = require('date-fns'); +const { es } = require('date-fns/locale') + const makeFilter = (date) => { - let filters = []; + let filters = [ + { + label: 'Últimos 7 días', + startAt: format(sub(date, { days: 7 }), 'yyyy/MM/dd'), + endAt: format(date, 'yyyy/MM/dd') + }, + { + label: 'Últimos 28 días', + startAt: format(sub(date, { days: 28 }), 'yyyy/MM/dd'), + endAt: format(date, 'yyyy/MM/dd') + }, + { + label: 'Últimos 90 días', + startAt: format(sub(date, { days: 90 }), 'yyyy/MM/dd'), + endAt: format(date, 'yyyy/MM/dd') + }, + { + label: 'Últimos 365 días', + startAt: format(sub(date, { years: 1 }), 'yyyy/MM/dd'), + endAt: format(date, 'yyyy/MM/dd') + }, + { + label: format( startOfYear( sub( date, { years: 1 } ) ), 'yyyy'), + startAt: format( startOfYear( sub( date, { years: 1 } ) ), 'yyyy/MM/dd'), + endAt: format( endOfYear( sub( date, { years: 1 } ) ), 'yyyy/MM/dd') + }, + { + label: format( startOfYear( sub( date, { years: 2 } ) ), 'yyyy'), + startAt: format( startOfYear( sub( date, { years: 2 } ) ), 'yyyy/MM/dd'), + endAt: format( endOfYear( sub( date, { years: 2 } ) ), 'yyyy/MM/dd') + }, + { + label: format( startOfYear( sub( date, { years: 3 } ) ), 'yyyy'), + startAt: format( startOfYear( sub( date, { years: 3 } ) ), 'yyyy/MM/dd'), + endAt: format( endOfYear( sub( date, { years: 3 } ) ), 'yyyy/MM/dd') + }, + { + label: format( endOfYear( sub( date, { years: 1 } ) ), 'MMMM', { locale: es }), + startAt: format( startOfMonth( endOfYear( sub( date, { years: 1 } ) ) ), 'yyyy/MM/dd'), + endAt: format( endOfYear( sub( date, { years: 1 } ) ), 'yyyy/MM/dd') + }, + { + label: format( sub( endOfYear( sub( date, { years: 1 } ) ), { months: 1 } ), 'MMMM', { locale: es }), + startAt: format( sub( startOfMonth( endOfYear( sub( date, { years: 1 } ) ) ), { months: 1 } ), 'yyyy/MM/dd'), + endAt: format( sub( endOfYear( sub( date, { years: 1 } ) ), { months: 1 } ), 'yyyy/MM/dd') + }, + { + label: format( sub( endOfYear( sub( date, { years: 1 } ) ), { months: 2 } ), 'MMMM', { locale: es }), + startAt: format( sub( startOfMonth( endOfYear( sub( date, { years: 1 } ) ) ), { months: 2 } ), 'yyyy/MM/dd'), + endAt: format( sub( endOfYear( sub( date, { years: 1 } ) ), { months: 2 } ), 'yyyy/MM/dd') + } + ]; return filters; } + +console.log( makeFilter( new Date(2020,0,1) ) ) + module.exports = { makeFilter }; \ No newline at end of file From 17d9e1f6019ab8b6fa0d605863acb0d249133d06 Mon Sep 17 00:00:00 2001 From: Angelo Zambrano Date: Sat, 6 Jun 2020 16:33:55 -0500 Subject: [PATCH 2/2] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 714db49..eb8be26 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Uso de date-fns +![](https://raw.githubusercontent.com/Angelozam17/challenge-javascript-12/master/src/assets/test.png) + + La manipulación de fechas en JS puede ser compleja usando la lib de date-dns hace que sea más facíl. # RETO 1