angularJS表中的格式化日期

时间:2018-10-24 12:58:09

标签: angularjs datetime angularjs-ng-repeat

我正在用angularJS创建一个网络应用,我的日期格式如下

  

“ response.data [0] .Date =” / Date(1539887400000)/“

我可以像这样将这个日期转换为正常的brew services list

MM-DD-YYYY

但是在使用ng-repeat将数据绑定到表中时,我无法实现

我做了这样的事情

moment(response.data[0].Date).format('DD-MM-YYYY');

但在表中它仍显示为<td>{{d.Date| date:'DD-MM-YYYY' }}</td>

/Date(1539887400000)/转换为DD-MM-YYYY所需的操作

1 个答案:

答案 0 :(得分:0)

您的问题是因为您使用的date过滤器是AngularJS定义的过滤器,并且设计用于日期对象,自纪元以来的秒数或特定格式的字符串(请参阅:{{3 }})。在您的情况下,您要传入字符串"Date(1539887400000)",该字符串不符合过滤器date参数期望的任何特定格式。这是我考虑解决此问题的几种方法:

  • 从数据库中获取数据后,可以初始化date选项。例如:$scope.testDate = new Date(1539887400000);。然后,您可以在此对象上使用常规的日期过滤器:{{testDate | date: 'dd-MM-yyyy'}}
  • 您可以使用angular-moment(链接:https://docs.angularjs.org/api/ng/filter/date),它具有比常规angularJS日期过滤器更多的功能。然后,您可以使用amDateFormat并传入您的字符串,例如:{{d.Date | amDateFormat: 'DD-MM-YYYY'}}
  • 您可以从当前的字符串中解析出数字。由于常规的angularJS date过滤器可以接受数字(自纪元以来的秒数)作为参数,因此将正确格式化它。

请在此处查看示例废物,以了解其中的一些操作:https://github.com/urish/angular-moment