使用矩js将ISO 8601格式化为"MMM"和"hourPM/AM"



我有一个日期格式:

"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

相关内容

  • 没有找到相关文章

最新更新