Format Date and Time in JavaScript
Format dates in various formats
BeginnerDate/Time ProgramsExample 2 of 10
format-date-and-time.js
1// Method 1: Basic formatting2function formatDate(date) {3 const year = date.getFullYear();4 const month = String(date.getMonth() + 1).padStart(2, '0');5 const day = String(date.getDate()).padStart(2, '0');6 return `${year}-${month}-${day}`;7}89console.log('YYYY-MM-DD:', formatDate(new Date()));1011// Method 2: Multiple formats12function formatDateMultiple(date, format) {13 const year = date.getFullYear();14 const month = String(date.getMonth() + 1).padStart(2, '0');15 const day = String(date.getDate()).padStart(2, '0');16 const hours = String(date.getHours()).padStart(2, '0');17 const minutes = String(date.getMinutes()).padStart(2, '0');18 const seconds = String(date.getSeconds()).padStart(2, '0');1920 const formats = {21 'YYYY-MM-DD': `${year}-${month}-${day}`,22 'DD/MM/YYYY': `${day}/${month}/${year}`,23 'MM/DD/YYYY': `${month}/${day}/${year}`,24 'YYYY-MM-DD HH:mm:ss': `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`,25 'DD MMM YYYY': `${day} ${getMonthName(date.getMonth())} ${year}`26 };2728 return formats[format] || formatDate(date);29}3031function getMonthName(month) {32 const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];33 return months[month];34}3536console.log('DD/MM/YYYY:', formatDateMultiple(new Date(), 'DD/MM/YYYY'));37console.log('DD MMM YYYY:', formatDateMultiple(new Date(), 'DD MMM YYYY'));3839// Method 3: Relative time40function getRelativeTime(date) {41 const now = new Date();42 const diff = now - date;43 const seconds = Math.floor(diff / 1000);44 const minutes = Math.floor(seconds / 60);45 const hours = Math.floor(minutes / 60);46 const days = Math.floor(hours / 24);4748 if (seconds < 60) return `${seconds} seconds ago`;49 if (minutes < 60) return `${minutes} minutes ago`;50 if (hours < 24) return `${hours} hours ago`;51 if (days < 7) return `${days} days ago`;52 return formatDate(date);53}5455console.log('Relative:', getRelativeTime(new Date(Date.now() - 3600000)));5657// Method 4: Locale formatting58const date = new Date();59console.log('en-US:', date.toLocaleDateString('en-US'));60console.log('en-GB:', date.toLocaleDateString('en-GB'));61console.log('de-DE:', date.toLocaleDateString('de-DE'));62console.log('ja-JP:', date.toLocaleDateString('ja-JP'));6364// Method 5: Custom format with Intl65const formatter = new Intl.DateTimeFormat('en-US', {66 year: 'numeric',67 month: 'long',68 day: 'numeric',69 weekday: 'long'70});7172console.log('Formatted:', formatter.format(new Date()));
Output
YYYY-MM-DD: 2024-01-15 DD/MM/YYYY: 15/01/2024 DD MMM YYYY: 15 Jan 2024 Relative: 1 hours ago en-US: 1/15/2024 en-GB: 15/01/2024 de-DE: 15.1.2024 ja-JP: 2024/1/15 Formatted: Monday, January 15, 2024
What's going on
Date formatting displays dates in readable formats.
Format Patterns
YYYY-MM-DD: ISO format
DD/MM/YYYY: European format
MM/DD/YYYY: US format
Custom formats
Locale Formatting
toLocaleDateString: Local format
Intl.DateTimeFormat: Advanced
Supports multiple locales
Relative Time
"X minutes ago"
"X hours ago"
"X days ago"
Human-readable
Best Practices
Use Intl for locales
Handle timezones
Format consistently
Consider user locale