Z.K*_*rik 3 typescript angular angular7
我收到此错误消息
指定的值“2019-04-13T00:00:00”不符合要求的格式“yyyy-MM-dd”。
我想将日期/时间更改为日期。
日期时间示例:2019-04-13T00:00:00
我想做的例子:2019-04-13
HTML
<input
class="form-control mr-sm-2"
id="dates"
name="achievement_date"
[(ngModel)]="addItems.achievement_date"
required
type="date"
placeholder="Tournament Date"
/>
Run Code Online (Sandbox Code Playgroud)
提供的第一个解决方案很棒,因为它使用 Vanilla JavaScript 解决了您的解决方案!
但是,我还有另外两个替代解决方案。
1) 这利用了 Angular 的内置DatePipe。您甚至可以传入各种 DateTime 格式。
import { DatePipe } from '@angular/common';
.
.
export class SampleComponent implements OnInit {
constructor(private datePipe: DatePipe) {
this.addItems.achievement_date = datePipe.transform('2019-04-13T00:00:00', 'yyyy-MM-dd');
// console.log(this.date)
}
}
Run Code Online (Sandbox Code Playgroud)
请记住将 DatePipe 导入到正在使用它的模块中的提供程序。
import { DatePipe } from '@angular/common';
.
.
@NgModule({
.
.,
providers: [
DatePipe
]
})
Run Code Online (Sandbox Code Playgroud)
上面应该在输入字段上显示日期。我使用上述解决方案做了一个演示
2)格式日期。请注意,这可能不适用于早期版本的 Angular。到目前为止,我只在 Angular 7 上尝试和测试过它。
import {formatDate } from '@angular/common';
.
.
export class AppComponent {
date = undefined;
constructor() {
this.date = formatDate('2019-04-13T00:00:00', 'yyyy-MM-dd', 'en-US');
}
}
Run Code Online (Sandbox Code Playgroud)
这是给你的另一个演示。
这个实用函数是我的帮助
export const getDate = function (date: any): Date {
const _date = new Date(date);
return new Date(
Date.UTC(_date.getFullYear(), _date.getMonth(), _date.getDate())
);
};
Run Code Online (Sandbox Code Playgroud)
或另一种基于格式“yyyy-MM-dd”返回字符串值的方法
export const getDate = function (date: any): string{
const _date = new Date(date);
return `${_date.getFullYear()}-${_date.getMonth()}-${_date.getDate()}`;
};
Run Code Online (Sandbox Code Playgroud)
在保存日期之前只需清理该值
this.addItems.achievement_date = getDate(this.addItems.achievement_date);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13952 次 |
| 最近记录: |