在 Angular 中将日期格式从 yyyy/MM/dd 更改为 MM/dd/yyyy

Change date format from yyyy/MM/dd to MM/dd/yyyy in Angular

本文关键字:yyyy MM dd Angular 日期 格式      更新时间:2023-09-26

第一次尝试,这样做了:

{{ leads.pgDate | date:'MM/dd/yyyy' }}

我也试过:

" | date:"MM/dd/yyyy": 'UTC' "

第二次尝试,去了leadsCtr.js并找到了

$scope.leadsGridOptions = { 
  columnDefs: [ 
    {
      field: 'expected',
      displayName: 'Expected Close Date', width: 150, type: 'date',
cellFilter: 'date:''MM/dd/yyyy''' 
    }
  ]
}

添加了'type:''date''并从''sort''更改了单元格筛选器

观察:

显示名称:"预计关闭日期"但是HTML 中的日期标题是"购买日期" - 这就是第二次尝试不起作用的原因。此外,cellFilter被覆盖,该添加也没有改变任何东西。

{{leads.pgDate.toString()}} 

添加toString并没有改变任何东西 - 也许日期是一个字符串?!

新问题:

找不到ng-repeat用来填充字段的对象,以查看日期是否真的是一个字符串,我可以解析它。

问题:

如果日期以字符串形式出现,角度过滤器会不起作用吗?有没有办法覆盖{{inside the HTML}}

答:

使用了金布罗主义的建议。包装器将值转换回日期格式,筛选器工作。

试试这个{{convertDate(leads.pgDate) | date:'dd/MMM/yyyy'}}

//.JS

$scope.convertDate = function convertDate(date){
    return new Date(date);
};

如果您将日期作为字符串 yyyy-mm-dd 获取,然后将其转换为 java 脚本日期 obj。将其转换为日期obj后,很容易转换为任何格式。有关月-日-年格式,请参阅此链接如何在 Javascript 中获取当前格式化的日期 dd/mm/yyyy 并将其附加到输入中

我建议对日期相关的东西使用时刻和角时刻。

在控制器中:

$scope.date = moment(<date>, 'YYYY/MM/DD');

在视图中:

<p data-ng-bind="date | amDateFormat : 'MM/DD/YYYY'"></p>