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 diff --git a/src/assets/test.png b/src/assets/test.png new file mode 100644 index 0000000..ae70621 Binary files /dev/null and b/src/assets/test.png differ 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