Time Element for Dates
Uses the time element with datetime attribute to represent dates and times in a machine-readable format for scheduling and display.
Code
<article>
<p>Published: <time datetime="2025-01-15">January 15, 2025</time></p>
<p>Updated: <time datetime="2025-01-16T14:30:00-05:00">Jan 16, 2025 at 2:30 PM</time></p>
<p>Event: <time datetime="2025-03-01T09:00">March 1, 2025 at 9 AM</time></p>
<p>Duration: <time datetime="PT2H30M">2 hours 30 minutes</time></p>
<p>Weekly: Every <time datetime="2025-01-13">Monday</time></p>
</article>
<time datetime="2025-01-15">1/15/2025</time>
<time datetime="2025-01-15T10:00:00Z">10:00 UTC</time>
<time datetime="2025-07-04">Independence Day</time>
<time datetime="PT1H">1 hour</time>
<time datetime="PT30M">30 minutes</time>
<time datetime="P1DT12H">1 day 12 hours</time>
<time datetime="2025-01-15" pubdate>Published Jan 15</time>
<script>
const times = document.querySelectorAll('time[datetime]');
times.forEach(t => {
const date = new Date(t.dateTime);
const relative = getRelativeTime(date);
t.title = relative;
});
function getRelativeTime(date) {
const diff = date - new Date();
const days = Math.round(diff / 86400000);
return days === 0 ? 'Today' : days > 0 ? `In ${days} days` : `${-days} days ago`;
}
</script>Report a problem with this exampleOpens a pre-filled issue on GitHub.