Search code examples
javascriptreactjsjavascript-date

Javascript toLocaleDateString converting nulls to 12/31/1969


Javasript toLocalDateString is converting my null dates in API to 12/31/1969. How can I prevent this behavior, and just show nulls? Or do I have to write conditional statements each time?

const formatDate = (dateInput: string) => {
  const formattedDate = new Date(dateInput).toLocaleDateString("en-US");
  return formattedDate;
};


<TableCell align="right">
  {customerBodyView?.enrollmentDate == null
    ? ""
    : formatDate(customerBodyView?.enrollmentDate)}
</TableCell>

enter image description here


Solution

  • const formatDate = (dateInput) => {
        if (isNaN(Date.parse(dateInput))) {
            return null;
        }
    
        // success
        return new Date(dateInput).toLocaleDateString("en-US");
    };
    
    console.log(formatDate("12/12/2023")); // 12/12/2023
    console.log(formatDate(null)); // null
    console.log(formatDate("null")); // null
    console.log(formatDate("")); // null
    console.log(formatDate(undefined)); // null