【发布时间】:2021-07-24 14:08:28
【问题描述】:
我有一个 dd.mm.yyyy 格式的日期
我使用函数将此日期转换为 MM-DD-YYYY
stringToStringDateFormat(objectData: any): string {
return moment(objectData, 'DD.MM.YYYY').format('MM-DD-YYYY');
}
我想将小时分钟和秒设置为 0 广告以 ISO 格式发送日期,所以我使用了以下代码:
new Date(new Date(this.stringToStringDateFormat("19.07.2021")).setUTCHours(0,0,0,0)).toISOString();
但我遇到的问题是我有不同的一天 例如在这种情况下,我得到 2021-07-18T00:00:00.000Z 而实际上应该是 2021-07-19T00:00:00.000Z
我怎样才能让我的代码得到我提供的相同日期而不是日期 -1?
【问题讨论】:
-
this.stringToStringDateFormat("19.07.2021")返回的日期是什么时候。可能是一个问题,它考虑了您当地的时区并返回,例如2021-07-18 T23:00:00Z或2021-07-19 0:00:00 UTC-1. -
不,该函数仅更改格式并返回“07-19-2021”
-
为什么要使用 moment 进行如此简单的字符串操作?只需拆分它并直接创建一个UTC日期。
-
@R0b0t0 那么你的代码是如何工作的呢?这意味着您在应该出错的字符串上调用
.setUTCHours(0,0,0,0)。似乎括号通常不匹配,并且由于某种原因您使用了 Date 构造函数两次? -
@KelvinSchoofs 我添加了缺少的括号
标签: javascript typescript date