努力在 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”(永远不需要考虑时间部分)的最简单方法是什么?
您遇到的问题是由于时区转换造成的。当您解析包含时区的日期字符串(如
"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>