我有一个日期格式:
"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
就可以了。否则,正确的方法是在不更改时区的情况下将字符串格式化为正确的日期。
你可以试试这个吗:
const a = moment("2021-01-16T03:00:00Z")
let b = a.format("MMM Do [-] h a")
// MMM Do [-] h a
console.log(b)
你又多了一个0,他想要:2019-01-16 t03:00:00 [0]Z