使用 moment.local() 将 UTC 毫秒转换为浏览器的时间,而 moment.toDate() 不准确


var utcMilliSeconds = 1486116995814;
// UTC time:03/02/2017 10:16:35 (From epoch Converter)
// IST time:03/02/2017, 15:46:35 (From epoch converter) 
moment.utc(1486116995814).local().format("DD/MM/YYYY HH:MM:ss"); //IST time:03/02/2017 15:02:35  but it's wrong
moment.utc(1486116995814).toDate(); //Fri Feb 03 2017 15:46:35 GMT+0530 (India Standard Time) 

toDate()给出正确的时间,但我不想使用toDate()因为 JavaScript 日期的格式不灵活。

moment.local()有什么问题,为什么它没有给出准确的时间,有什么简单的方法可以在不使用任何其他库的情况下将 UTC millis 转换为浏览器的时间?

您使用大写MM而不是小写mm来格式化分钟。请参阅格式化文档。 MM代表几个月,而mm代表分钟。

这里有一个工作示例:

var s = moment.utc(1486116995814).local().format("DD/MM/YYYY HH:mm:ss");
console.log(s);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

我尝试了这种方式并正常工作

var timeInUTCMiliSecond = 1641367170421
let ConvertedTime = moment.unix(timeInUTCMiliSecond / 1000).format("hh:mm")
consol.log(ConvertedTime)

或您想要的任何格式

最新更新