smart_daterange_formatter
The Smart Date Range Formatter module provides a field formatter for Drupal's core daterange field type that intelligently detects whether a date range starts and ends on the same calendar day.
When the start and end dates fall on the same day, only the time portion needs to differ — the module avoids repeating the date twice, keeping the output clean and readable (e.g. January 15, 2026, 9:00 AM – 5:00 PM).
When the start and end dates fall on different days, both full date/time values are displayed (e.g. January 15, 2026 – January 18, 2026).
Features:
Separate configurable date formats for same-day and different-day ranges
Fully respects the site timezone and per-user timezone settings
Respects the current language ($langcode) for all formatted output
Lightweight Twig template (smart-daterange.html.twig) for easy theming
Ships with minimal CSS, easily overridable by your theme
No external dependencies beyond Drupal core's datetime module