gpt4 book ai didi

c# - Angular2+ C# Web Api - 服务器端保存错误时间的日期时间

转载 作者:太空狗 更新时间:2023-10-29 17:38:42 24 4
gpt4 key购买 nike

我正在尝试保存日期时间,但是当 webapi 收到日期时,它会将其更改为不正确的时区。

我的 Angular 应用返回:2019 年 5 月 22 日星期三 11:03:35 GMT+0200但是我的 Web Api 返回:22/05/2019 09:03:35 所以在我的 SQL Server 数据库上它保存错误。

我希望它准确保存 22/05/2019 11:03:35

在我的 Angular 应用程序中,我有这个:

myComponent.component.html

<div class="row">
<div class="col-4" style="float:left;">
<div class="form-group">
<div class="input-group">
<input [ngModel]="newDate | date:'dd/MM/yyyy HH:mm:ss'"
(ngModelChange)="newDate=$event"
name="newDate"
type="datetime"
id="new-date"
class="form-control">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col">
<div class="form-group">
<button type="submit" (click)="onSubmit()" class="btn btn-primary">Submit</button>
</div>
</div>
</div>
<br>
{{saveDate}}

myComponent.component.ts

import { Component, OnInit, ViewChild, } from '@angular/core';

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent implements OnInit {
newDate = Date.now()
saveDate: Date;
ngOnInit() {
}

onSubmit() {
this.saveDate = new Date(this.newDate);
// call web api function
// ...
this.reportService.register(this.saveDate).subscribe(() => {});
}
}

这是一个 stackblitz 示例: https://stackblitz.com/edit/angular-uadhxa

我的 web api 函数是这样的:

[ResponseType(typeof(DateTime))]
public async Task<IHttpActionResult> PostDatetime(DateTime _dateTime)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}

using (db)
{
db.Reports.Add(_dateTime);
await db.SaveChangesAsync();
}

return CreatedAtRoute("DefaultApi", new { id = report.ReportID }, _dateTime);
}

我不明白这是我如何从 Angular 应用程序传递日期时间的问题还是我的 webapi 上的问题。

你能帮帮我吗?非常感谢

最佳答案

使用DatePipe在组件中根据您的要求格式化日期:

TS代码:

import { Component, OnInit, ViewChild, } from '@angular/core';
import { DatePipe } from '@angular/common' // Import this

@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [DatePipe] // Add this
})
export class AppComponent implements OnInit {
newDate = Date.now()
saveDate: any; // change to any

constructor(private datePipe: DatePipe) { } // In constructor
ngOnInit() {
}

onSubmit() {
this.saveDate = this.datePipe.transform(this.newDate, 'dd/MM/yyyy HH:mm:ss');
console.log(saveDate ); // and use it as
// call web api function
// ...
//this.reportService.register(this.saveDate).subscribe(() => {});
}
}

Working_Demo

关于c# - Angular2+ C# Web Api - 服务器端保存错误时间的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56253641/

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