Skip to content

Instantly share code, notes, and snippets.

@ariesmcrae
Created August 29, 2023 15:10
Show Gist options
  • Save ariesmcrae/6aa82770848341e001b54f3d1f6785f3 to your computer and use it in GitHub Desktop.
Save ariesmcrae/6aa82770848341e001b54f3d1f6785f3 to your computer and use it in GitHub Desktop.
Typescript: Date comparison using `date-fns`

Typescript: Date comparison using date-fns

import { compareAsc, parseISO } from 'date-fns';

type UltraMarathoner = {
  id: string;
  name: string;
  finishTime: string;
};

const ultraMarathoner1: UltraMarathoner = {
  id: "ultraMarathoner1",
  name: "Alice",
  finishTime: "2023-05-31T06:52:03Z"
};

const ultraMarathoner2: UltraMarathoner = {
  id: "ultraMarathoner2",
  name: "Bob",
  finishTime: "2023-05-31T06:53:00Z"
};

function pickTheRunnerWithTheLatestFinishTime(runner1: UltraMarathoner, runner2: UltraMarathoner): UltraMarathoner {
  const date1 = parseISO(runner1.finishTime);
  const date2 = parseISO(runner2.finishTime);

  return compareAsc(date1, date2) === 1 ? runner1 : runner2;
}

const slowestRunner = pickTheRunnerWithTheLatestFinishTime(ultraMarathoner1, ultraMarathoner2);
console.log("The runner with the latest finish time is:", slowestRunner);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment