我们使用的是 Moment v2.30.1。我们尝试将 StartDateTime 应用于对象,但它始终被设置为 utc()。我们想直接将其设置为 美洲/芝加哥时区。
这是具有 startDateTime 值的对象:
export interface ExPCReq extends BaseModel {
description: string | null | undefined;
action: PA;
startDateTime?: moment.Moment;
userId: number;
}
这就是当前的设置方式:
const pCReq: ExPCReq = {
description: this.paFrmGrp.get('descriptionCtrl')?.value as string,
action: PA.Move,
startDateTime: moment.utc(),
userId: this.userService.userDetails.value.userId
};
我已经尝试了很多方法,但这将其设置为空值,因为它说它是无效日期,因为它试图将值设置为字符串,对吗?
const pCReq: ExPCReq = {
description: this.paFrmGrp.get('descriptionCtrl')?.value as string,
action: PA.Move,
startDateTime: moment.tz(moment.toString(), "MM/DD/YYYY h:mm a", "America/Chicago"),
userId: this.userService.userDetails.value.userId
};
当我检查 startDateTime 值时,isUTC 始终设置为 true,即使在上面的第二种情况下也是如此。
我只是对这个 Moment 库有点困惑。它曾经要简单得多,因为我大约 10-12 年前使用过它。
根据您想要的设置位置,尝试使用固定的 UTC 偏移量,而不是时区。
console.log(moment.utc().utcOffset('-06:00'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>