gpt4 book ai didi

momentjs - 不修改日期的时刻到ISOstring

转载 作者:行者123 更新时间:2023-12-04 19:40:42 27 4
gpt4 key购买 nike

我有一个像“Thu Sep 01 2016 00:00:00 GMT+0530 (IST)”这样的日期,我需要将它作为 ISO-8601 UTC 时间发送到服务器。我试过:

moment(mydate).toISOString()

moment.utc(mydate).toISOString()

moment(mydate).utcOffset("+00:00").toISOString()

但我得到的结果是
2016-08-31T18:30:00.000Z

这比我预定的时间晚了 1 天。那么我该怎么做才能让 moment 忽略我的本地时区并将其视为 UTC?

编辑:
预期的输出是
2016-09-01T18:30:00.000Z

不,初始输入不是字符串而是javascript“new Date()”值。

最佳答案

发生这种情况的原因:
发生这种情况是因为 .toISOString() 以 UTC 返回时间戳,即使有问题的时刻处于本地模式。这样做是为了提供与原生 JavaScript Date .toISOString() 规范的一致性
解决方案:
使用相同的函数并将真值传递给它。这将阻止 UTC 转换。moment(date).toISOString(true)

const date = new Date("2020-12-17T03:24:00");
const dateISOStringUTC = moment(date).toISOString();
const dateISOString = moment(date).toISOString(true);

console.log("Converted to UTC:" + dateISOStringUTC)
console.log("Actual Date value:" + dateISOString)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

关于momentjs - 不修改日期的时刻到ISOstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39275736/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com