我使用moment将毫秒转换为日期和时间,它按预期给出了正确的输出,但在转换相同的date+time时,它给出了错误的输出。
我用过unix,valueOf moment的方法。
const moment = require('moment-timezone');
console.log(moment.tz(1567032260763,'x','America/Chicago').format('MM-DD-YYYY hh:mm:ss A')) //gives me 08-28-2019 05:44:20 PM which is right.
console.log(moment('08-28-2019 05:44:20 PM','MM-DD-YYYY hh:mm:ss A').valueOf()); // gives me 1567032260000 instead of 1567032260763请指点我哪里错了!
发布于 2019-08-29 19:49:13
您需要在以下行中添加时区:
moment('08-28-2019 05:44:20 PM','MM-DD-YYYY hh:mm:ss A').tz('America/Chicago').valueOf();发布于 2019-08-29 20:44:55
function callMoment() {
console.log(moment.tz(1567032260763,'x','America/Chicago').format('MM-DD-YYYY hh:mm:ss A'))
console.log(moment.tz('08-28-2019 05:44:20.763 PM','MM-DD-YYYY hh:mm:ss.S A','America/Chicago').valueOf());
}<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.26/moment-timezone-with-data.min.js"></script>
<button onclick="callMoment()">Call Me</button>
您在将其转换回时缺少毫秒。
console.log(moment.tz(1567032260763,'x','America/Chicago').format('MM-DD-YYYY hh:mm:ss A'))
console.log(moment.tz('08-28-2019 05:44:20.763 PM','MM-DD-YYYY hh:mm:ss.S A','America/Chicago').valueOf());现在输出是正确的。
https://stackoverflow.com/questions/57708716
复制相似问题