包装Intl.DateTimeFormat的格式

时间:2018-05-30 15:13:41

标签: javascript isodate

我尝试使用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

1 个答案:

答案 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日期转换为您想要的任何格式。