React:在我的 Axios 调用中从数据库转换日期时间

问题描述

我正在尝试弄清楚如何在 axios 调用中使用 LUXON 转换我的数据库日期,这是否可行,或者我应该在数据库数据本身内更改它吗?

这是我的代码如下:

 const onClickDay = (date) => {
        // setMonth(date.getMonth() + 1);
        // setDay(date.getDate());
        // setyear(date.getFullYear());
    
        getAllData().then((res) => {
          setSave(res[1]);
          setExpense(res[2]);
    
          const getSaveDates = save.map((item) => {
            const d = item.date;
            const saveConverted = DateTime.fromISO(d).toLocaleString();
          });
        });
        console.log(save);
      };

我稍后在渲染时对其进行了转换,但是,我还使用 react-calendar 作为组件并尝试预先获取要转换的日期,以便我的 onClick 处理程序在其受尊重的日期渲染日期。

截至目前,数据采用 ISO-8601 日期格式,即 2020-12-21T20:06:52+0000

也许你们有更多的经验?请帮忙! 提前致谢!

解决方法

根据此link

Date() 构造函数有四种基本形式:

  1. 无参数
  2. 时间值或时间戳编号
  3. 时间戳字符串
  4. 单个日期和时间组件值

所以我认为您可以使用以下代码解决您的问题:

const getSaveDates = save.map((item) => {
    const d = new Date(item.date)
    const saveConverted = d.toLocaleString();
});
,

对于一些迷失的灵魂,我用...解决了部分问题

     const onClickDay = (date) => {
    // setMonth(date.getMonth() + 1);
    // setDay(date.getDate());
    // setyear(date.getFullYear());
    getAllData().then((res) => {
      setSave(res[1]);
      setExpense(res[2]);
    });
    const getSaveDates = save.map((item) => {
      const d = item.date;
      const saveConverted = DateTime.fromISO(d).toLocaleString();
      return { ...item,date: saveConverted };
    });
    const getExpenseDate = expense.map((item) => {
      const d = item.date;
      const expenseConverted = DateTime.fromISO(d).toLocaleString();
      return { ...item,date: expenseConverted };
    });
    setData([getExpenseDate,getSaveDates]);
  };
  console.log(data);