微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 JSON 日期更改为实际日期

如何解决将 JSON 日期更改为实际日期

我最近才开始学习 javascript,所以对于初学者的问题,我深表歉意。 我想要做的是将我通过外部 JSON 文件访问的 SentDate 更改为更具可读性的 dd/mm/yyyy 格式。我创建了一个循环,并尝试在此处进行更改,但它的行为不正常。

这是我的 JSON 文件

[
{
   "Name":"John Smith","FromName":"Peter A","FromEmail":"test@notreal.com","ReplyTo":"test@notreal.com","SentDate":"2020-11-11 19:21:00",},{
    "Name":"Jane Doe","FromName":"Bob Richards","FromEmail":"test2@notreal.com","ReplyTo":"test2@notreal.com","SentDate":"2019-11-11 19:21:00",}

]

这是我的 Javascript:

var request = new XMLHttpRequest();
  request.open("GET","data/informationdata.json",false);
  request.send(null);
  var abcPre = JSON.parse(request.responseText);  
  console.log("type of data: "+typeof(abcPre));
  
  for(var i = 0; i < abcPre.length;i++){
    if (abcPre.SentDate = [] ){
      abcPre.SentDate = new Date (SentDate).toLocaleDateString("en-GB").split("-");
      console.log(abcPre[i].SentDate);
     }

  }

有人可以帮忙指出我在尝试更改日期时出错的地方吗?

提前致谢。

编辑:这是修改后的代码,现在至少返回了一些东西。结果是“无效日期”,但其进度:

 var request = new XMLHttpRequest();
  request.open("GET",false);
  request.send(null);
  var abcPre = JSON.parse(request.responseText);  
  console.log("type of data: "+typeof(abcPre));
  
  for(var i = 0; i < abcPre.length;i++){
    if (abcPre.SentDate = [] ){
      abcPre[i].SentDate = new Date (abcPre.SentDate).toLocaleDateString("en-GB").split("-");
    console.log(`new date ${abcPre.sentDate}`);
     }

  }

再次感谢。

解决方法

for(var i = 0; i < abcPre.length;i++){
    if (abcPre[i].SentDate == [] ){
      abcPre[i].SentDate = new Date (abcPre.SentDate).toLocaleDateString("en-GB").split("-");
    console.log(`new date ${abcPre.sentDate}`);
     }

  }
,
var d1="2019-12-29 19:21:00"; 
  var d2=d1.split(" ");
  var d3=d2[0];
  var d4=d3.split("-").reverse().join("-");
  console.log(d4) // Output 29-12-2019
  var d5=d4+" "+d2[1]
  console.log(d5);  // Output 29-12-2019 19:21:00

var d1="2019-12-29 19:21:00"; 
  var d2=d1.split(" ");
  var d3=d2[0];
  var d4=d3.split("-").reverse().join("-");
  console.log(d4) // 29-12-2019
  var d5=d4+" "+d2[1]
  console.log(d5);  // 29-12-2019 19:21:00

,

非常感谢所有帮助我解决问题的人。 我终于让它工作了。

这是:

  for(var i = 0; i < abcPre.length;i++){
  console.log(abcPre[i]);
  if (abcPre.SentDate = []) {
    abcPre[i].SentDate = new Date (abcPre[i].SentDate).toLocaleDateString("en-GB").split("-");
    console.log(`new date ${abcPre.sentDate}`);
     }

     else {
       console.log(`re-check date IF statement`);
        }
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。