Date Best Practices
Store dates in UTC, use ISO 8601 strings for serialization, display in the user's locale, and always validate date inputs.
Store dates in UTC, use ISO 8601 strings for serialization, display in the user's locale, and always validate date inputs.
// Store/send as ISO string (UTC)
const stored = new Date().toISOString(); // "2024-06-15T10:30:00.000Z"
// Display in user locale
const display = new Intl.DateTimeFormat(navigator.language, {
dateStyle: "medium",
timeStyle: "short",
}).format(new Date(stored));
// Validate date input
function isValidDate(str) {
const d = new Date(str);
return !isNaN(d.getTime());
}
// Use a library for complex operations (date-fns, Luxon)
import { addBusinessDays, formatDistanceToNow } from "date-fns";
For complex date math (business days, recurring events, fiscal years), use date-fns or Luxon rather than reimplementing it.
More in JavaScript