首页 > 解决方案 > 使用 postgres PRN 堆栈在表格中格式化日期

问题描述

我有一个带有日期的 Postgres 表,我无法按照我想要的方式格式化日期。我希望它将日期存储为 yyyy/mm/dd。但是,它存储并显示 yyyy-mmTdd-hh-mm-ssL(见图)。

在我的应用程序中,我有一个上下文 API,我遍历表以显示值。我查看了文档并尝试正确设置日期值,但它继续显示时间和时区。如此令人沮丧,因为它在 pgAdmin 中正确显示,但在应用程序中却没有。

带有不需要的时区数据的表格显示图片

带有不需要的时区数据的表格显示图片

pgAdmin 中具有正确日期显示的 postgres 表的图片

pgAdmin 中具有正确日期显示的 postgres 表的图片

它在表中显示:2020-10-20T07:00:00.000Z 它应该显示:2020-10-20

从邮递员获取请求我得到这个:

"data": {
    "watertrack": {
        "id": "110",
        "fcbc_rec_date": "2017-10-26T07:00:00.000Z",
        "hold_total": null 
}

标签: reactjspostgresql

解决方案


我想出的解决方案是在数据映射到表格时截断日期。我意识到这是一个前端解决方案。仍然没有弄清楚日期在哪里变异。尽管如此,我还是将该函数添加到带有日期的元素中,并且效果很好。

const handleDateTruncation = (str) => {
        if(str !== null) {
            return str.substr(0, 10);
        } else {
            return "";
        }
    }

在jsx...

{tracker && tracker.map((el) => {
      return (
          <tr key={el.id}>
              <td>{handleDateTruncation(el.start_date)}</td>
          </tr>
      )
}

这将返回日期为 yyyy-mm-dd,不带时间戳和语言环境。


推荐阅读