1.2.2 • Published 3 years ago

shleemy v1.2.2

Weekly downloads
17
License
MIT
Repository
github
Last release
3 years ago

shleemy

  • Small
  • Mighty
  • No dependencies
  • Easy to use
  • You won't go to time prison for messing with time

Inspiration take from Carbon

Install

$ yarn add shleemy

Or

$ npm i shleemy

Usage

Basic

Get human readable values with tense information

Present

import { shleemy } from "shleemy";

const interval = shleemy(new Date());

console.log(interval.forHumans); // "just now"
console.log(interval.tense); // "present"

Past

import { shleemy } from "shleemy";

const date = new Date();
date.setMinutes(date.getMinutes() - 3);

console.log(shleemy(date).forHumans); // "3 minutes ago"
console.log(shleemy(date).tense); // "past"

Future

import { shleemy } from "shleemy";

const date = new Date();
date.setMinutes(date.getMinutes() + 70);

console.log(shleemy(date).forHumans); // "in an hour"
console.log(shleemy(date).tense); // "future"
interval values
import { shleemy } from "shleemy";

const date = new Date();
date.setHours(date.getHours() - 3);

console.log(shleemy(date).roundedHours); // 3
import { shleemy } from "shleemy";

const date = new Date();
date.setDays(date.getDays() - 12);

console.log(shleemy(date).roundedDays); // 12
console.log(shleemy(date).roundedWeeks); // 1
Basic Formatting
const date = new Date();
date.setDays(date.getDays() - 12);

const interval = shleemy(date);

console.log(interval.time); // 12:34
console.log(interval.date); // 12/03/2021

No locale as of now, so you backwards date people will have to do with day/month/year. Soz

Output manipulation

The Shleemy object can be used as a string!

import { shleemy } from "shleemy";

const date = new Date();
date.setDays(date.getDays() - 12);

const interval = shleemy(date);

console.log(`added ${interval}`); // added 12 days ago;
console.log(`${interval.replace('days', 'yonders')}`); // 12 yonders ago;

Available properties

import { shleemy } from "shleemy";

const date = new Date();
date.setDays(date.getDays() - 12);
const interval = shleemy(date);

console.log('seconds', interval.seconds);
console.log('rounded seconds', interval.roundedSeconds);
console.log('minutes', interval.minutes);
console.log('rounded minutes', interval.roundedMinutes);
console.log('hours', interval.hours);
console.log('rounded hours', interval.roundedHours);
console.log('days', interval.days);
console.log('rounded days', interval.roundedDays);
console.log('weeks', interval.weeks);
console.log('rounded weeks', interval.roundedWeeks);
console.log('months', interval.months);
console.log('rounded months', interval.roundedMonths);
console.log('years', interval.years);
console.log('rounded years', interval.roundedYears);
console.log('tense', interval.tense);

All properties will be positive values. You cannot have -3 days in the 4th dimension. Use tense for past/present/future value

Options

import { shleemy, ShleemyInterval } from "shleemy";

const date = new Date();
date.setDays(date.getDays() - 12);

const toDate = new Date();
toDate.setDays(toDate.getDays() - 20);

console.log(
  shleemy(date, {
    toDate: toDate, // default: new Date() (now)
    rounding: 'ceil', // default: floor
    humanReadable: {
      past: (value, interval) => `${value} ${ShleemyInterval.pluralInterval(value, interval)} yonders ago`, // default: ShleemyInterval.toHumanReadablePast
      future: (value, interval) => `in ${value} ${ShleemyInterval.pluralInterval(value, interval)} and you get the idea`, // default: ShleemyInterval.toHumanReadableFuture
      present: () => `seconds ago!`, // default: "just now"
    }
  }).days
); // 8
1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago