Smart Date Range Formatter
This module enhances Drupal's date range field by providing a smarter way to display date ranges. It automatically detects if a range falls on the same day and simplifies the output to avoid repetition, showing only the times. If the range spans multiple days, it displays both full dates and times.
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