如何转换" /日期(1490065200000)/"到" 21/03/2017"?

时间:2017-03-29 04:36:35

标签: javascript momentjs

请登入jsfiddle

代码:

$( document ).ready(function() {
  var str = moment("/Date(1490065200000)/"); //Convert to "21/03/2017"
  console.log(str.toString());
});

此处为docs:https://momentjs.com/docs/#/parsing/asp-net-json-date/

任何解决方案?

3 个答案:

答案 0 :(得分:4)

希望我帮助你。

var str = moment("/Date(1490065200000)/").format("DD/MM/YYYY");
console.log(str);

答案 1 :(得分:1)

添加.format("MM/DD/YYYY")。文档:http://momentjs.com/docs/#/displaying/format/

UPD:.format("DD/MM/YYYY"),就像@Tushar在评论中注意到的那样

答案 2 :(得分:1)

您可以将正则表达式与捕获组一起使用。

str = "/Date(1490065200000)/"
timestamp = parseInt(str.match(/Date\((\d+)\)/)[1])
formatted = moment(timestamp).format('DD/MM/YYY')
console.log(formatted)

正则表达式/Date\((\d+)\)/

的说明
  • Date只会匹配字符串Date
  • 有两对括号。外部的一个是逃逸的,因此是反斜杠。这将与日期字符串中显示的括号字符字面匹配。
  • 内括号,因为它们未被转义,所以分隔捕获组。这些说“我想保留这个匹配的字符串”。生成的匹配对象将在数组中包含捕获的字符串,我们可以使用[1]来引用它以获得所需的数字。