我尝试使用Intl.DateTimeFormat格式化ISO日期字符串。
由于它不接受字符串,我试图修改实例的format
函数。
它返回错误:
RangeError:时间值无效
var str = '2018-05-30T12:20:51.526Z'
var date = new Date(str)
var dtf = new Intl.DateTimeFormat('en');
var format = dtf.format;
dtf.format = function(str) {
var date = new Date(str);
return format(date);
}
console.log(new Intl.DateTimeFormat('en').format(date)) // 5/30/2018
console.log(dtf.format(str))
以下是带有代码的JsBin。
答案 0 :(得分:0)
我认为你最好用'moment.js'来格式化它。
var str = '2018-05-30T12:20:51.526Z'
var date = new Date(str)
console.log(new Intl.DateTimeFormat('en').format(date))
console.log(moment(str).format("MM/DD/YYYY"));
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
<title>JS Bin</title>
</head>
<body>
</body>
</html>
在HTML文件中导入'moment'脚本,您可以将ISO日期转换为您想要的任何格式。