【问题标题】:How to parse JSON Date object in NodeJS?如何在 NodeJS 中解析 JSON Date 对象?
【发布时间】:2021-08-16 15:24:02
【问题描述】:

如何在 NodeJS 中将 /Date(1391802454790-0700)/ 等 json 日期解析为 (01/31/2014 11:44 AM)

JSON 日期对象:

{
    ...,
    "BirthDate":"\/Date(1391802454790-0700)\/",
    ...   
}

我尝试了下面的代码,但它不起作用:

var jsondate = "/Date(1391802454790-0700)/";
const data = JSON.parse(jsondate);
console.log(data);

【问题讨论】:

标签: node.js momentjs


【解决方案1】:
let obj = {
  birthday: "/Date(1391802454790-0700)/",
};

let regex = /\(([^)]+)\-\d+/g;

let match = regex.exec(obj.birthday); 
if (match) {
  console.log(match[1]);
  console.log(new Date(Number(match[1])));  // 2014-02-07T19:47:34.790Z - You can use libs to format date
}

【讨论】:

  • 你也可以看看@tmarwen的评论,它用更简单的方式解决了你的问题。
【解决方案2】:

嗯,你只需要使用 Birthdate 的值并替换不需要的字符,这样你就可以获得1391802454790 部分;之后,您只需使用 new Date() 以所需格式从该 1391802454790 创建一个有效日期:

 let data = {
        ...,
        "BirthDate":"\/Date(1391802454790-0700)\/",
        ...   
    };
    let birthdate = data.Birthdate;
    birthdate = birthdate.replace("/Date(", "").replace("-0700)/", "");
    let formatedBirthdate = new Date(birthdate);

【讨论】:

  • 它也可以,我只是添加了这一行:** let milliseconds = Number(birthdate); ** 在此之前:** let formatedBirthdate = new Date(milliseconds); **
猜你喜欢
  • 2011-05-29
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
相关资源
最近更新 更多