如何在角度2中将日期转换为'yyyy-MM-dd'格式

Uma*_*eed 37 ionic2 angular

我想将当前数据转换'yyyy-MM-dd'为.ts文件中的格式.我模板它可以通过使用数据管道轻松完成.如何在打字稿中做到这一点.

在模板中:

{{date  | date:'yyyy-MM-dd'}}
Run Code Online (Sandbox Code Playgroud)

如何'yyyy-MM-dd'在打字稿中以这种格式转换.

现在我只是通过使用它来获取当前日期.

this.date =  new Date();
Run Code Online (Sandbox Code Playgroud)

但需要将其转换为给定的格式.请指导如何做到这一点......谢谢!

Uma*_*eed 97

可以'yyyy-MM-dd'使用Datepipe 将日期转换为此格式的日期

import { DatePipe } from '@angular/common'
...
constructor(public datepipe: DatePipe){}
...
myFunction(){
 this.date=new Date();
 let latest_date =this.datepipe.transform(this.date, 'yyyy-MM-dd');
}
Run Code Online (Sandbox Code Playgroud)

并在app.module.ts的'providers'数组中添加Datepipe.像这样:

import { DatePipe } from '@angular/common'
...
providers: [DatePipe]
Run Code Online (Sandbox Code Playgroud)

  • 你错过了从哪里导入这个:import {DatePipe}来自'@ angular/common'; (5认同)
  • 现在有一个内置的 `formatDate()` 函数,只需从 `@angular/common` https://angular.io/api/common/formatDate 导入 (4认同)

LuD*_*per 18

我在我的项目中遇到了同样的问题。感谢@Umar Rashed,但我将详细解释它。

首先,从 app.module提供日期管道

providers: [DatePipe]
Run Code Online (Sandbox Code Playgroud)

导入到您的组件和 app.module:

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

其次,在构造函数下声明:

constructor(
    public datepipe: DatePipe
  ) {
Run Code Online (Sandbox Code Playgroud)

日期来自服务器并解析到控制台,如下所示:

2000-09-19T00:00:00
Run Code Online (Sandbox Code Playgroud)

我使用此代码将日期转换为我需要的方式; 在打字稿中:

this.datepipe.transform(this.birthDate, 'dd/MM/yyyy')
Run Code Online (Sandbox Code Playgroud)

HTML 模板显示

{{ user.birthDate }}
Run Code Online (Sandbox Code Playgroud)

并且可以看出这样的:

19/09/2000
Run Code Online (Sandbox Code Playgroud)

也可以在网站上看到这样的: 日期显示为过滤(点击查看屏幕截图)

  • 太棒了,这就是开发人员所需要的,而不是附加一天、一个月或一年来创建自己的格式。干杯!伙计...谢谢。 (3认同)

小智 8

你也可以试试这个。

考虑今天的日期“ 2018 年 12 月 28 日”(例如)

 this.date = new Date().toISOString().slice(0,10); 
Run Code Online (Sandbox Code Playgroud)

new Date() 我们得到:2018 年 12 月 28 日星期五 11:44:33 GMT+0530(印度标准时间)

toISOString 将转换为:2018-12-28T06:15:27.479Z

slice(0,10) 我们只得到前 10 个字符作为包含 yyyy-mm-dd 的日期:2018-12-28。


Ahm*_*med 5

一个简单的解决方案是只写

this.date = new Date().toLocaleDateString();
Run Code Online (Sandbox Code Playgroud)

既是日期.toLocaleDateString() 时间.toLocaleTimeString().toLocaleString()

希望这可以帮助。


Abh*_*oni 5

您还可以使用 formatDate

let formattedDt = formatDate(new Date(), 'yyyy-MM-dd hh:mm:ssZZZZZ', 'en_US')
Run Code Online (Sandbox Code Playgroud)