从Angular到asp.NET的日期时间(样板)

从Angular到asp.NET的日期时间(样板),asp.net,angular,datetime,Asp.net,Angular,Datetime,我想不出如何将datetime(当事件发生时)从Angular UI以datetime格式提取到我的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="eventT

我想不出如何将datetime(当事件发生时)从Angular UI以datetime格式提取到我的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;
data=typeof data=='object'?数据:{};
数据[“categoryId”]=此.categoryId;
数据[“类别”]=此类别?this.category.toJSON():未定义;
数据[“名称”]=this.name;
数据[“说明”]=此项说明;
数据[“位置”]=此位置;
data[“phone”]=这个电话;
数据[“电子邮件”]=此电子邮件;
数据[“notes”]=this.notes;
数据[“限制”]=此.limit;
数据[“creationTime”]=这个.creationTime?this.creationTime.toISOString():未定义;
数据[“eventTime”]=此.eventTime?this.eventTime.toISOString():未定义;
我有一个可怕的结局

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)

错误类型错误:this.eventTime.toISOString不是函数
位于EventDto.push.KALY.EventDto.toJSON(main.js:12020)
在JSON.stringify()上
位于EventServiceProxy.push.KALY.EventServiceProxy.create(main.js:7969)
在CreateEventDialogComponent.push.aZhx.CreateEventDialogComponent.save处(创建事件对话框.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>
<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?新日期().toISOString().slice(0,19).替换('T',''):未定义///成功

是为我做的。

您可能知道,日期/时间值在数据库中存储为关于的整数(例如,自1970年1月1日起的#/秒)。不是像“MM/dd/yyyy”这样的值,当然也不是关于任何“时区”。该值与任何时区无关。在您的例子中,您正在读取的数字(日期/时间值)恰好是“0”

问:如果您的程序遇到日期/时间值“0”,您希望它的行为如何?请澄清“预期行为”

问:实际的错误是什么?您包括堆栈跟踪。。。但不是错误消息。请将此添加到您的帖子中

问:输入JSON是什么样子的?你能将相关的JSON复制/粘贴到你的帖子中吗


请更新您的帖子,以便我们能给您一个更好的答案:)

寻找合适的日期选择者

<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>
<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>


{{“事件时间”|本地化}


数据[“eventTime”]=此.eventTime?新日期().toISOString().slice(0,19).替换('T',''):未定义///成功

是为我做的。

你有什么错误?我看到堆栈跟踪,但没有实际错误。请添加更多详细信息。从你的问题中不清楚你的错误是什么,以及它是如何发生的。您还没有包括完整方法、堆栈跟踪等。我猜您的问题是您正在对字符串而不是日期调用
.toISOString()
。输入值本质上是字符串,需要转换为日期。我没有看到你在代码中这样做。可以看到示例。错误类型错误:this.eventTime.toISOString在EventDto.push.KALY.EventDto.toJSON(main.js:12020)在JSON.stringify()在EventServiceProxy.push.KALY.EventServiceProxy.create(main.js:7969)在CreateEventDialogComponent.push.aZhx.CreateEvent上不是函数抱歉,它切断了请“编辑”您的原始帖子(与添加注释相比)。请复制/粘贴1)完整的回溯和错误文本,以及2)JSON消息文本。但是您已经告诉了我们足够多的信息来验证问题是您的字段没有被识别为“日期”对象。我猜呢?JSON可能是一个“数字”或“字符串”。再次-请向我们展示JSON!抱歉,我只是不明白您显示JSON的意思:(我尝试记录该值,至少是为了了解该日期选择器的结果-从未让它显示任何其他未定义的内容,因此显然我也犯了错误。Datetime值0不应该出现,它要么为null,要么为日期。问题确实出在toISOString()上)方法,但我不知道如何在此上下文中从提供给Date对象的字符串中获取。或者我是否应该以不同的方式处理此问题。我最终获得了控制台日志,结果表明datetime本地返回未定义的。sConsole(event){var data=document.getElementById(“eventTime”);console.log(data[“eventTime”])}但我不知道为什么。“日期时间值0不应该出现,它要么为null,要么为日期”。这不一定是真的!通常(特别是当您使用实体框架而不是“原始SQL”开发架构时),如果在“插入”期间未提供日期值,则列将默认为“0”(而不是“null”)。但您需要查看消息(“数据”)中的实际JSON。其他任何内容都是“纯粹的推测”。我们正在等待您更新您的帖子…完成了!数据[“eventTime”]=this.eventTime?new Date().toISOString().slice(0,19)。replace('T',''):未定义;成功与[owlDateTimeTrigger]=“dtPicker1”[owlDateTime]=“dtPicker1”>为我做的。谢谢!如果我也能算出角度组件的组成:DAll很好。但是……1)如果在数据库中进行“选择”,可能会看到“null”或“0001-01-01 00:00:00.0000000”,这取决于列的定义方式。实体框架通常会将默认值设置为“0001-01-01 00:00:00.0000000”或历代价值“0”。2)重要的是