【发布时间】:2021-04-26 17:41:30
【问题描述】:
我不知道如何以日期时间格式从 Angular UI 获取日期时间(事件发生时)到我的 Microsoft SQL 数据库。那是 DB 中的格式:0001-01-01 00:00:00.0000000,但老实说,我没有那么远。
<div class="form-group row required">
<label class="col-md-3 col-form-label" for="eventTime">
{{ "EventTime" | localize }}
</label>
<div class="col-md-9">
<input
type="datetime-local"
class="form-control"
name="eventTime"
id="eventTime"
required
[(ngModel)]="event.eventTime"
#eventTimeModel="ngModel"
#eventTimeEl
/>
<abp-validation-summary
[control]="eventTimeModel"
[controlEl]="eventTimeEl"
></abp-validation-summary>
</div>
</div>
我已经收到了
data = typeof data === 'object' ? data : {};
data["categoryId"] = this.categoryId;
data["category"] = this.category ? this.category.toJSON() : <any>undefined;
data["name"] = this.name;
data["description"] = this.description;
data["location"] = this.location;
data["phone"] = this.phone;
data["email"] = this.email;
data["notes"] = this.notes;
data["limit"] = this.limit;
data["creationTime"] = this.creationTime ? this.creationTime.toISOString() : <any>undefined;
data["eventTime"] = this.eventTime ? this.eventTime.toISOString() : <any>undefined;
我的结局很糟糕
ERROR TypeError: this.eventTime.toISOString is not a function
at EventDto.push.KALY.EventDto.toJSON (main.js:12020)
at JSON.stringify (<anonymous>)
at EventServiceProxy.push.KALY.EventServiceProxy.create (main.js:7969)
at CreateEventDialogComponent.push.aZhx.CreateEventDialogComponent.save (create-event-dialog.component.ts:53)
我该怎么办?为简化起见,我可以假设时区不变且不变。
编辑: 寻找合适的日期选择器
<div class="form-group row required">
<label class="col-md-3 col-form-label" for="eventTime">
{{ "EventTime" | localize }}
</label>
<div class="col-md-9">
<input
class="form-control"
required
[(ngModel)]="event.eventTime"
name="eventTime"
id="eventTime"
[owlDateTimeTrigger]="dtPicker1" [owlDateTime]="dtPicker1">
<owl-date-time #dtPicker1></owl-date-time>
与
data["eventTime"] = this.eventTime ? new Date().toISOString().slice(0, 19).replace('T', ' ') : <any>undefined; ///SUCCESS!!
为我做的。
【问题讨论】:
-
你得到什么错误?我看到堆栈跟踪,但没有实际错误。
-
请添加更多详细信息。从您的问题中非常不清楚您的错误是什么以及它是如何发生的。您没有包含完整的方法、堆栈跟踪等。我的猜测是您的问题是您在字符串上调用
.toISOString(),而不是日期。输入值本质上是字符串,需要转换为日期。我没有看到您在代码中这样做。例子可以看here。 -
ERROR TypeError: this.eventTime.toISOString is not an function at EventDto.push.KALY.EventDto.toJSON (main.js:12020) at JSON.stringify (
) at EventServiceProxy.push .KALY.EventServiceProxy.create (main.js:7969) at CreateEventDialogComponent.push.aZhx.CreateEvent 对不起,它切断了 -
请“编辑”您的原始帖子(而不是添加评论)。请复制/粘贴 1) 完整的回溯,带有错误文本,AND 2) JSON 消息文本。但是您已经告诉我们足够多的信息来验证问题在于您的字段 NOT 被识别为“日期”对象。我猜? JSON 可能以“数字”或“字符串”的形式出现。再次 - 请向我们展示 JSON!
-
抱歉,我只是不明白你显示 JSON 的意思 :( 我试图记录该值,至少,以了解该日期选择器的结果 - 从来没有显示任何其他未定义的东西,所以很明显我也做错了。