如何将 javascript 新日期 JSON 字符串化

问题描述 投票:0回答:2
const data= JSON.stringify(orderForm.informationDate)); 

目前,我从 JSON 获取数据以任何方式打印 PDF:

{"year":2023,"month":12,"day":22}

如何将数据更改为DD.MM.YYYY格式?

javascript json stringify dataformat
2个回答
0
投票

您可以获取该对象的属性(data.year、data.month、data.day)并连接成字符串

${data.day}.${data.month}.${data.year}


0
投票

您的问题是基于一些误解:

  1. 日期无法与 json 序列化 - 没有日期/时间数据类型。

  2. 当您向 json 序列化器提供日期时,您正在提供一个对象,因此序列化器会生成一个对象表示,就像您所看到的:

    const myFakeDate = { year: 2023, month: 12, day: 22 };
    console.log(JSON.stringify(myFakeDate)); // => {"year":2023,"month":12,"day":22}
    
  3. 您在问题中提到的格式显然是一个字符串,因为日期通常在内部存储为数字,而不是字符串

  4. 就您而言,您有两种选择:

    1. 在调用
      JSON.stringify
      之前将日期/时间对象转换为字符串:
      const data= {
         name: "John Doe",
         birthDate: {year: 1982, month: 3, day: 4}
      };
      
      data.birthDate = data.birthDate.day + '.' + data.birthDate.month + '.' + data.birthDate.year;
      
      console.log(JSON.stringify(data));
      
    2. 或使用“替换器”功能:
    const data= {
       name: "John Doe",
       birthDate: {year: 1982, month: 3, day: 4}
    };
    
    const replacer = function(item) {
       if (item.year && item.month && item.day) {
         return item.day + '.' + item.month + '.' + item.year;
       }
    
       return item;
    };
    
    console.log(JSON.stringify(data, replacer));
    
  5. 请记住,您可能/可能需要在另一侧反转该过程(例如,将字符串转换回日期)

  6. 如果您使用的是日期时间对象(而不是普通对象),您可以检查对象类而不是日/月/年属性是否存在。这取决于您的确切代码。

© www.soinside.com 2019 - 2024. All rights reserved.