如何将这个“字符串”转换为正确的日期?

问题描述 投票:0回答:1

努力在 javascript 中显示从 postgres 数据库检索并通过 python 返回的日期。

当我简单地 console.log 从 GET 请求返回的变量时,它的格式如下:

Thu, 12 Sep 2024 00:00:00 GMT

我只是想将其显示为:

09/12/24

(我不知道 00:00:00 GMT 部分来自哪里,但本质上我只是想丢弃它。由于某种原因,它似乎影响了我的转换。)

我正在使用 moment.js,但无法让它显示正确的日期。它始终显示 1 天前 (9/11/24)。

将返回的日期时间字符串简单地显示为“09/12/24”(永远不需要考虑时间部分)的最简单方法是什么?

javascript momentjs
1个回答
0
投票

您遇到的问题是由于时区转换造成的。当您解析包含时区的日期字符串(如

"Thu, 12 Sep 2024 00:00:00 GMT"
)时,JavaScript 和 Moment.js 默认将其转换为您的本地时区。如果您的本地时区落后于 GMT(例如,在美国),此转换可能会将日期向后移动一天,导致其显示为“09/11/24”而不是“09/12/24”。

要解决此问题,您可以解析 UTC 日期并设置其格式,以防止任何时区调整。以下是一些实现所需格式的方法:

// Parse the date string as UTC
const date = moment.utc('Thu, 12 Sep 2024 00:00:00 GMT');

// Format the date in UTC
const formattedDate = date.format('MM/DD/YY');

console.log(formattedDate); // Outputs: 09/12/24
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.2.1/moment.min.js"></script>

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