Skip to content

Instantly share code, notes, and snippets.

@nicobytes
Last active August 29, 2021 17:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicobytes/7a3b1890c35b0a2c1a43b20d1d272f70 to your computer and use it in GitHub Desktop.
Save nicobytes/7a3b1890c35b0a2c1a43b20d1d272f70 to your computer and use it in GitHub Desktop.
Date Fns

1. Init

const format = require('date-fns/format');
const formatDistance = require('date-fns/formatDistance');
const subDays = require('date-fns/subDays');
const sub = require('date-fns/sub');

const today = new Date();
const todayFormat = format(today, 'yyyy/MM/dd');
console.log(format(today, "dd/MM/yy '---' HH:mm"));
console.log(format(today, "'Today is a' eeee"));
console.log(todayFormat);
console.log(formatDistance(subDays(today, 3), today, { addSuffix: true }));

2. Filters

const filters = [
  {
    label: 'Últimos 3 días',
    startAt: format(sub(today, {days: 3}), 'yyyy-MM-dd'),
    endAt: todayFormat
  },
  {
    label: 'Últimos 7 días',
    startAt: format(sub(today, {days: 7}), 'yyyy-MM-dd'),
    endAt: todayFormat
  },
  {
    label: 'Últimos 28 días',
    startAt: format(sub(today, {days: 28}), 'yyyy-MM-dd'),
    endAt: todayFormat
  },
  {
    label: 'Últimos 90 días',
    startAt: format(sub(today, {days: 90}), 'yyyy-MM-dd'),
    endAt: todayFormat
  },
  {
    label: 'Últimos 365 días',
    startAt: format(sub(today, {days: 365}), 'yyyy-MM-dd'),
    endAt: todayFormat
  },
];

3. With Months

for (let index = 1; index <= 3; index++) {
  const monthPrev = sub(today, {months: index});
  filters.push({
    label: format(monthPrev, 'MMMM'),
    startAt: format(startOfMonth(monthPrev), 'yyyy-MM-dd'),
    endAt: format(endOfMonth(monthPrev), 'yyyy-MM-dd')
  });
}

4. i18n

const es = require('date-fns/locale/es');
format(monthPrev, 'MMMM', {locale: es}),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment