【问题标题】:convert date from yyyymmdd to yyyy/mm/dd formate using angular pipe html使用角管html将日期从yyyymmdd转换为yyyy/mm/dd格式
【发布时间】:2020-10-29 14:01:51
【问题描述】:

是否有任何可用的角度选项可将 yyyymmdd 格式日期直接转换为 yyyy/mm/dd。

我尝试过使用角管,但它给出的日期不同。

我的日期是 20201029

{{日期 |日期:'yyyy-MM-dd'}}

【问题讨论】:

  • 20201029 或者是一个字符串或者是一个数字(但它不是 1970/1/1 之后的毫秒数),无论如何你需要让自己成为一个管道:angular.io/guide/…
  • @Tibebes 只要 Angular 能够解析字符串,就可以将字符串传递给管道。问题是,无法解析 20201029 。 new Date('20201029' ) 返回无效日期。结果是一样的,他需要事先把他的字符串转成日期对象
  • @MoxxiManagarm 我刚刚提供的解决方案处理字符串操作(自定义管道)。无需转换

标签: javascript html angular


【解决方案1】:

你需要一个自定义管道来处理字符串。

尝试做这样的事情:

import {
  Pipe,
  PipeTransform
} from '@angular/core';

@Pipe({
  name: 'customDate'
})
export class CustomDatePipe implements PipeTransform {
  transform(value: string): string {
    const pattern = /(\d{4})(\d{2})(\d{2})/
    const [year, month, day] = value.match(pattern).slice(1)

    return [year, month, day].join('-')
  }
}

【讨论】:

    【解决方案2】:

    如果您的应用中有许多自定义格式和/或表单,请检查 ngx-mask。 您会在“其他”部分找到管道。
    如果这是唯一的情况,自定义管道就是您的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多