我尝试用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。
发布于 2018-05-31 17:08:48
我认为你最好使用'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日期转换为您想要的任何格式。
https://stackoverflow.com/questions/50608179
复制相似问题