Sort an array of dates

Sort dates ascending or descending without changing the input.

JavaScript Version 1.0.0 · MIT · .md

sort-an-array-of-dates.js
function sortDates({ dates, order = 'asc' }) { const sorted = [...dates].sort((a, b) => Date.parse(a) - Date.parse(b)); return order === 'desc' ? sorted.reverse() : sorted; }

Input & expected output

Input

{
  "dates": [
    "2026-10-28",
    "2026-01-01",
    "2026-05-05"
  ]
}

Expected output

[
  "2026-01-01",
  "2026-05-05",
  "2026-10-28"
]

The edge case

Input

{
  "dates": [
    "2026-01-01",
    "2026-10-28"
  ],
  "order": "desc"
}

Expected output

[
  "2026-10-28",
  "2026-01-01"
]

Know the limits

  • The original descending comparator returned a boolean, which sort treats inconsistently; a numeric difference is required. It also sorted in place.

The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.

Source & maintenance

Based on Sort an array of dates from the original 1loc collection by Nguyen Huu Phuoc. Copyright (c) 2020 phuoc-ng. MIT licensed.

Uses a numeric comparator on a copy; the original descending comparator returned a boolean and sorted in place. Original MDX retained as inert source evidence.

Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.

Local fixture scope · Node.js 22.23.2 · reviewed October 28, 2026. No external service is required.

Keep exploring

Type two or more characters. Try “duplicate”, “webhook” or “retry”.