如何仅将日期从Angle 6传递到Web API

时间:2019-03-23 06:51:37

标签: c# angular angular6

我要将日期从我的angular 6应用程序传递到Web api。问题是当我从datepicker选择例如2019年3月10日时。当我在网络api中将其转换为3月9日6:30 pm时,我认为它与时区有关,但是我不需要时间,我只想传递日期。

以下是角度代码

  getBookingList() {

    this.bookingListSubscription = this.restService.getBookingListForGrid(this.booking).subscribe(
  data => {
    setTimeout(() => {
      if (data.status = '200') { 
      this.bookingList = data;
      this.bookingList.forEach((element) => {
        element.StartDate =  this.datePipe.transform(element.StartDate, "dd/MM/yyyy"),
          element.EndDate = new Date(element.EndDate);
      });
    }, 3000)
  });
  }

我正在用c#将日期存储为DateTime格式。

2 个答案:

答案 0 :(得分:1)

您可以使用angular的DatePipe

导入此:

import { DatePipe } from '@angular/common';

并在构造函数中:

constructor(private datePipe: DatePipe){}

要更改所选日期的格式,您只需使用转换方法即可:

this.datePipe.transform(this.date, "your_expected_date_format"); // Format: dd/MM/yyyy OR dd-MM-yyyy OR yyyy-MM-dd

TS代码:

import {Component} from '@angular/core';
import {FormControl} from '@angular/forms';


import { DatePipe } from '@angular/common';

/** @title Select with multiple selection */
@Component({
  selector: 'select-multiple-example',
  templateUrl: 'select-multiple-example.html',
  styleUrls: ['select-multiple-example.css'],
   providers: [
    DatePipe
  ]
})
export class SelectMultipleExample {

  date : any;
  formatedDate : any;

  constructor(private datePipe: DatePipe){}

  onSubmit(){
   this.formatedDate =  this.datePipe.transform(this.date, "dd/MM/yyyy");
  }
}

Stackblitz

答案 1 :(得分:0)

使用DatePipe的替代解决方案是使用formatDate。我已经传递了以下值:日期,时间格式和语言环境作为其参数。

在component.ts上,您可以执行以下操作:

import { formatDate } from '@angular/common';

export class AppComponent  {
  locale: string = 'en-US';
  format: string = 'dd-mm-yyyy'
  date: Date = new Date();

  constructor() {}

  transformDate(date) {
    console.log(formatDate(this.date, this.format, this.locale));
    return formatDate(this.date, this.format, this.locale);
  }
}

我复制了demo来演示用法。