如何在角度为5的Component中格式化日期

Fer*_*qui 15 angular-cli angular

我是角色的新手,并希望在组件ngOnInit方法中格式化日期.我已经看到一些示例,其中管道运算符用于格式化数据,但我不知道如何格式化组件文件中的日期.

下面是代码

export class DashboardComponent implements OnInit {
  formatdate = 'dd/MM/yyyy';
  constructor(private auth: AuthService) { }

  ngOnInit() {
    console.log(new Date().toISOString())
  }


}
Run Code Online (Sandbox Code Playgroud)

小智 31

您可以在此处找到有关日期管道的更多信息,例如格式.

如果您想在组件中使用它,您可以这样做

pipe = new DatePipe('en-US'); // Use your own locale
Run Code Online (Sandbox Code Playgroud)

现在,您可以简单地使用它的变换方法

const now = Date.now();
const myFormattedDate = this.pipe.transform(now, 'short');
Run Code Online (Sandbox Code Playgroud)

  • 嗯,在互联网上都有,但我想**[官方网站](https://www.typescriptlang.org/docs/home.html)**应该有最多的,你也应该看看* *[Angular 网站](https://angular.io/guide/architecture)** 因为你的大部分问题都会在那里得到解答(包括这个!) (2认同)

小智 15

同样有formatDate

const format = 'dd/MM/yyyy';
const myDate = '2019-06-29';
const locale = 'en-US';
const formattedDate = formatDate(myDate, format, locale);
Run Code Online (Sandbox Code Playgroud)

根据API,它将日期字符串,Date对象或时间戳作为参数。

陷阱:开箱即用,仅en-US受支持。

如果需要添加其他语言环境,则需要添加它并在app.module中注册它,例如西班牙语:

import localeES from "@angular/common/locales/es";
registerLocaleData(localeES, "es");
Run Code Online (Sandbox Code Playgroud)

不要忘记添加相应的导入:

import { formatDate } from "@angular/common";
Run Code Online (Sandbox Code Playgroud)


Sri*_*n N 12

参考以下链接,

https://angular.io/api/common/DatePipe

**Code Sample**

@Component({
 selector: 'date-pipe',
 template: `<div>
   <p>Today is {{today | date}}</p>
   <p>Or if you prefer, {{today | date:'fullDate'}}</p>
   <p>The time is {{today | date:'h:mm a z'}}</p>
 </div>`
})
// Get the current date and time as a date-time value.
export class DatePipeComponent {
  today: number = Date.now();
}
Run Code Online (Sandbox Code Playgroud)

{{今天 | 日期:'MM/dd/yyyy'}} 输出:17/09/2019

或者

{{今天 | 日期:'shortDate'}} 输出:17/9/19


Rat*_*hma 5

另一种选择是使用内置的 angular formatDate函数。我假设您使用的是反应式形式。这todoDate是模板中的日期输入字段。

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

this.todoForm.controls.todoDate.setValue(formatDate(this.todo.targetDate, 'yyyy-MM-dd', 'en-US'));
Run Code Online (Sandbox Code Playgroud)