gpt4 book ai didi

angular - ngx-bootstrap timepicker时区偏移导致SQL保存时间错误

转载 作者:太空狗 更新时间:2023-10-29 17:52:05 28 4
gpt4 key购买 nike

使用具有所有默认选项的 timepicker 模块,除了将 minutestep 设置为 1。

代码行如下

let DailyStartTime =  this.dailyStartTime != null ? 
new Date(this.dailyStartTime.getFullYear(),
this.dailyStartTime.getMonth(),
this.dailyStartTime.getDate(),
this.dailyStartTime.getHours(),
this.dailyStartTime.getMinutes()) : null

记录数据为2017 年 5 月 31 日星期三 19:51:00 GMT-0400(东部夏令时间)

最初显示,但一旦保存回 SQL,它就会转换为“2017-05-31T23:51:00”按时间偏移推进。我怎样才能否定这一点?

最佳答案

尝试使用 ngx-bootstrap (3.0) timepicker 将响应式(Reactive)表单保存到 POST(C# WebApi with EntityFramework)时,我遇到了同样的问题

似乎是 UTC 和本地计算机的问题。来自 datepicker 的日期看起来不错,但是在创建 POST 对象时,javascript 似乎调整了 UTC 和本地计算机之间的时区差异。

解决方法 (.ts):

submit() {
this.dataService.saveOpenHours({ OpensAt: this.fixDate(this.form.value.openHour), ClosesAt: this.fixDate(this.form.value.closeHour) }).subscribe(data => {
// do something
});
}

fixDate(d: Date): Date {
d.setHours(d.getHours() - d.getTimezoneOffset() / 60);
return d;
}

HTML

<form id="ngForm" [formGroup]="form" (ngSubmit)="submit()">
<timepicker formControlName="openHour"></timepicker>
<timepicker formControlName="closeHour"></timepicker>
</form>

希望这会对某人有所帮助!

关于angular - ngx-bootstrap timepicker时区偏移导致SQL保存时间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44296931/

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