我要将日期从我的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格式。
答案 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");
}
}
答案 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来演示用法。