angularjs - angularJS表中的格式化日期
问题描述
我正在使用 angularJS 创建一个 Web 应用程序我有以下格式的日期
"response.data[0].Date = "/Date(1539887400000)/"
我可以将这个日期转换为正常MM-DD-YYYY
的时刻,就像这样
moment(response.data[0].Date).format('DD-MM-YYYY');
但是在使用 ng-repeat 将数据绑定到表中时,我无法实现这一点
我做了这样的事情
<td>{{d.Date| date:'DD-MM-YYYY' }}</td>
但在表格中它仍然显示为/Date(1539887400000)/
我需要做什么才能转换/Date(1539887400000)/
为 DD-MM-YYYY
解决方案
您的问题是因为date
您使用的过滤器是 AngularJS 定义的过滤器,旨在处理日期对象、自纪元以来的秒数或专门格式化的字符串(请参阅:https ://docs.angularjs.org/api /ng/过滤器/日期)。在您的情况下,您传递的是一个 string "Date(1539887400000)"
,它不符合date
过滤器参数期望的任何特定格式。以下是我想解决这个问题的几种方法:
- 从数据库中获取数据后,您可以初始化日期选项。一个例子是:
$scope.testDate = new Date(1539887400000);
. 然后,您可以在此对象上使用常规角度日期过滤器:{{testDate | date: 'dd-MM-yyyy'}}
. - 您可以使用 angular-moment(链接:https ://github.com/urish/angular-moment ),它具有比常规 angularJS 日期过滤器更多的功能。然后,您可以使用
amDateFormat
并传递您的字符串,如下所示:{{d.Date | amDateFormat: 'DD-MM-YYYY'}}
- 您可以从当前拥有的字符串中解析出数字。由于常规的 angularJS
date
过滤器可以接受一个数字(自纪元以来的秒数)作为它的参数,它会正确格式化它。
请参阅此处的示例 plunker,其中显示了其中的一些实际操作:https ://plnkr.co/edit/quCvL3GhSux8ctYQqAwA
推荐阅读
- spring - Jetty:Spring Boot 2 中 JSON 反序列化的空闲超时过期异常
- reactjs - 打字稿中的对象可能是“未定义”
- angular - 如何获取文档 ID Firestore 角度?
- swift - 无法将字符串保存到 Realm Swift
- c++ - 了解构造函数在移动、复制、分配语义中的行为
- go - 使用接口模块化 golang 包
- ios-simulator - VirtualBox macOS Catalina Springboard 意外退出
- spring-integration - 为什么返回 Transformer null 会引发异常?
- java - Java如何知道字符串的长度?
- jquery - 如何获取自定义复选框的值