在Angular

时间:2016-04-26 05:16:11

标签: javascript angularjs date

第一次尝试,做到了这一点:

{{ 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\'

中的cellFilter

观察:

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

{{leads.pgDate.toString()}} 

添加toString并未改变任何内容 - 也许日期是一个字符串?!

新问题:

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

问题:

如果日期以字符串形式出现,角度滤镜是否会起作用?无论如何都要覆盖{{inside the HTML}}

答案:

使用了Jimbrooism的建议。包装器将值转换回日期格式,过滤器可以正常工作。

3 个答案:

答案 0 :(得分:0)

试试这个 {{convertDate(leads.pgDate)|日期: 'DD / MMM / YYYY'}}

// JS

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

答案 1 :(得分:0)

如果您将日期作为字符串yyyy-mm-dd,则将其转换为java脚本日期obj。 将其转换为日期obj后,很容易转换为任何格式。 对于mm-dd-yyyy格式,请参阅此链接 How to get current formatted date dd/mm/yyyy in Javascript and append it to an input

答案 2 :(得分:0)

我建议将momentangular moment用于与日期相关的内容。

在控制器中:

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

在视图中:

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