Back to Snippets
CODE

Format Date to Readable String

Description

Converts Date object to customizable string format without external libraries like moment.js

Code

/**
 * Format date to readable string
 * @param date Date object or timestamp
 * @param format Format string (YYYY=year, MM=month, DD=day, HH=hour, mm=minute, ss=second)
 * @returns Formatted date string
 */
function formatDate(date: Date | number, format = 'YYYY-MM-DD HH:mm:ss'): string {
  const d = new Date(date);
  const year = d.getFullYear();
  const month = String(d.getMonth() + 1).padStart(2, '0');
  const day = String(d.getDate()).padStart(2, '0');
  const hours = String(d.getHours()).padStart(2, '0');
  const minutes = String(d.getMinutes()).padStart(2, '0');
  const seconds = String(d.getSeconds()).padStart(2, '0');

  return format
    .replace('YYYY', year.toString())
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds);
}

// Usage Example
console.log(formatDate(new Date())); // 2024-05-20 14:30:45
console.log(formatDate(Date.now(), 'YYYY/MM/DD')); // 2024/05/20

Usage

Lightweight alternative to moment.js for basic date formatting in UI displays, logs, or reports

Tags

Date HandlingFormattingUtility Function