【问题标题】:How to convert "/Date(1490065200000)/" to "21/03/2017"? [duplicate]如何将“/Date(1490065200000)/”转换为“21/03/2017”? [复制]
【发布时间】:2017-03-29 04:36:35
【问题描述】:

请签入jsfiddle

代码:

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

这里的文档:https://momentjs.com/docs/#/parsing/asp-net-json-date/

任何解决方案?

【问题讨论】:

  • new Date("/Date(1490065200000)/".replace(/\D+/g, '')*1) ?
  • @JaromandaX,不...结果应该是:“21/03/2017”
  • 是的...请注意我没有 a) 发布 answer 和 b) 在评论中使用 moment ... 给男人一条鱼 vs 教一个男人一条鱼 - 但没关系,你已经有几条免费鱼了:p

标签: javascript momentjs


【解决方案1】:

希望能帮到你。

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

【讨论】:

  • 干得好,谢谢
  • 它是否适用于日期和时间?示例:“DD/MM/YYYY HOURS”
  • var str = moment("/Date(1490065200000)/").format("DD/MM/YYYY HH:mm");
【解决方案2】:

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

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] 引用该数组以获得所需的数字。

【讨论】:

  • 事实证明这可能是不必要的。正如 Ashish Kadam 的回答所指出的那样,moment 知道如何直接解析该字符串。不需要正则表达式。如果您想执行一些验证,它仍然很有用。
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    相关资源
    最近更新 更多