将日期从毫秒格式化为这种格式:DD/MM/YYYY hh:mm:ss(美国时间区域设置)使用原生 JS

Formating date from milliseconds to this format: DD/MM/YYYY hh:mm:ss (US time locale) using native JS

我需要以毫秒为单位格式化此值“1543325996”,如“18/01/1970,11:42:05 PM”。我已经使用 'toLocaleTimeString' 函数得到了正确的结果,但是这个结果是 String 类型的。我需要确切的日期类型。

function dateFormat(date) {
   var formDate = new Date(+date).toLocaleDateString("en-GB");
   var formTime = new Date(+date).toLocaleTimeString("en-US");
   var concatDate = (formDate + ", " + formTime); 
    // here I've got error 'Invalid Date'. I know that it's a wrong way, but don't know what to do.
   var newDate = new Date(concatDate);    
return newDate;

}

但是这个 returns 错误 "Invalid Date"。还有另一种方法可以将字符串转换为日期吗?

...but this result has String type. I need exactly Date type.

日期对象没有格式。格式化本质上是一种文本事物(例如,字符串)。

如果您想要 Date,那么 new Date(+date) 就可以满足您的需求。没有进一步的要求。稍后,如果您想以文本形式显示该日期,请使用 toLocaleDateStringIntl.DateTimeFormat 或类似方式按照您希望的格式设置它们的格式。但不是 until/unless 您需要将它们转换为文本(字符串)。