Human Readable Dates

approved

by Tommy Bergeron

Displays dates as human-readable relative dates in live preview. - This plugin has not been manually reviewed by Obsidian staff.

2 stars211 downloadsUpdated 1mo agoMIT

Human Readable Dates

An Obsidian plugin that transforms dates into human-readable, relative formats (e.g., "Yesterday", "2 hours ago", "In 3 days") while preserving the original date strings in your notes. Only works in Live Preview mode with seamless cursor-based editing.

Usage

The plugin automatically detects and transforms dates in the user specified format.

Time Precision

The plugin shows different levels of precision based on how recent the date is:

  • Within 5 minutes: "Now"
  • 5-59 minutes: "15 mins ago", "30 mins ago", "In 20 mins"
  • 1-23 hours: "2 hours ago", "5 hours ago", "In 8 hours"
  • Days: "Yesterday", "Tomorrow", "3 days ago", "In 5 days"
  • Weeks: "Last week", "Next week", "2 weeks ago"
  • Months: "Last month", "Next month", "3 months ago"
  • Years: "Last year", "Next year", "2 years ago"

Supported Tokens

Configure a date format in settings using standard Moment.js format tokens:

TokenMeaningExample output
YYYYYear, 4 digits2026
YYYear, 2 digits26
MMonth, 1-2 digits1, 12
MMMonth, 2 digits01, 12
MMMShort month nameJan, Dec
MMMMFull month nameJanuary, December
DDay of month, 1-2 digits5, 25
DDDay of month, 2 digits05, 25
dDay of week, number (Sun=0)0-6
ddWeekday abbreviation, 2 charsSu, Sa
dddShort weekday nameMon, Sun
ddddFull weekday nameMonday, Sunday
HHour (24h), 1-2 digits5, 23
HHHour (24h), 2 digits05, 23
hHour (12h), 1-2 digits5, 11
hhHour (12h), 2 digits05, 11
mMinute, 1-2 digits5, 59
mmMinute, 2 digits05, 59
sSecond, 1-2 digits5, 59
ssSecond, 2 digits05, 59
SSSFractional second, 3 digits123
AAM/PM (uppercase)AM, PM
aam/pm (lowercase)am, pm
ZTimezone offset with colon+05:30
ZZTimezone offset without colon+0530

Use bracket literals for escaped text: [at] matches the literal word "at".

Non-token characters (spaces, hyphens, colons, slashes, etc.) are treated as literal separators.

Examples (default format: ddd MMM DD YYYY HH:mm)

Original DateDisplay
Fri Aug 29 2025 14:55 (5 mins ago)5 mins ago
Fri Aug 29 2025 12:00 (2 hours ago)2 hours ago
Thu Aug 28 2025 (yesterday)Yesterday
Sat Aug 30 2025 (tomorrow)Tomorrow
[[Sun Aug 31 2025]] (in 2 days)In 2 days
`[[2025-08-31Sun Aug 31 2025]]` (aliased wikilink)

Examples (format: YYYY-MM-DD)

Original DateDisplay
2026-01-25Relative label
[[2026-01-25]]Clickable relative label

Examples (custom formats)

FormatMatchesNotes
M/D/YYYY1/25/2026Compact US format
YYYY-MM-DD HH:mm:ss2026-01-25 14:30:00With seconds
MMMM D, YYYY [at] h:mm AJanuary 25, 2026 at 2:30 PMWith bracket literal
DD-MMM-YY25-Jan-26Compact with month name

Invalid dates such as 2026-02-31 are ignored and left as-is.

Editing

Simply move your cursor over any transformed date to reveal the original text for editing. The human-readable display will automatically return when you move the cursor away.

Settings

  • Date format: Configure the date format to match your needs (default: ddd MMM DD YYYY HH:mm). Uses standard Moment.js format tokens.

Installation

Manual installation

Unzip the latest release into your <vault>/.obsidian/plugins/ folder.

Requirements

  • Obsidian v0.15.0+
  • Live Preview mode

License

MIT License

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.