我有以下内容
{journal.createdAt}
2019-10-30T14:01:59.689Z
输出created_at
日期。
我该如何格式化它?
我已经尝试过,但我认为我的值(value)放在了错误的地方
{new Intl.DateTimeFormat('en-GB', {
year: 'numeric',
month: 'long',
day: '2-digit'
}).format(journal.createdAt)}
我懂了
RangeError: date value is not finite in DateTimeFormat.format()
最佳答案
根据 ES2015, Intl.DateTimeFormat.format(date)
预计 date
参数是一个数字,表示自纪元以来的毫秒数。然而,在 MDN 文档示例和我自己在最近的 Firefox、Chrome 和 Safari 上进行的测试中,这些浏览器也将接受 Date
目的。
自 journal.createdAt
大概是 ISO8601 格式的字符串,您可以使用 Date.parse(journal.createdAt)
或new Date(journal.createdAt)
并将结果值传递给 Intl.DateTimeFormat.format
,虽然前者是按照规范来做的方式。
class App extends React.Component {
formatter = new Intl.DateTimeFormat("en-GB", {
year: "numeric",
month: "long",
day: "2-digit"
});
render() {
const dateString = "2019-10-30T14:01:59.689Z";
return (
<div>
Using <code>Date.parse</code>: {this.formatter.format(Date.parse(dateString))}
<br />
<em>OR</em>
<br />
Using <code>new Date</code>: {this.formatter.format(new Date(dateString))}
</div>
);
}
}
关于javascript - 在Reactjs中格式化created_at日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58634980/