我的日期格式如下:
"2021-01-16T03:00:000Z"
我想使用 momentJs 从中得到类似下面的内容:
Jan 16 - 3am
我写了这段代码,但它给我 invalid date
错误(我知道 .format() 参数不是我想要的日期,但我一直坚持从中获取有效日期第一步,我找不到我应该为我想要的格式传递哪个参数):
moment("2021-01-16T03:00:000Z").format("YYYY-MM-DD h:mm:ss a");
如何使用 momentJs 获取所需格式的日期?
最佳答案
您需要将字符串作为 YYYY:MM:DDTHH:MM:SS
传递给它:
const getDateFormatted = str => {
const date = str.slice(0,19);
return moment(date).format("MMM DD - h a");
}
console.log( getDateFormatted("2021-01-16T03:00:000Z") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous"></script>
编辑:由于 OP 的预期时间是 3am
,并且 moment("2021-01-16T03:00:00Z").format("MMM DD - h a")
会给出时间为5am
,可以在这里split
。否则,正确的方法是在不更改时区的情况下将字符串格式化为正确的日期。
关于javascript - 使用 moment js 将 iso 8601 格式化为 "MMM"和 "hourPM/AM",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66427040/