我的约会来自数据库,如下所示:2013-11-21 17:43:20
以下代码在FireFox中是有缺陷的,但在Chrome中工作得很好:
<ul class="job-lookup-results" ng-show="data" style="padding:0 10px;">
<li class="job-lookup-result" ng-repeat="result in data" style="margin:5px 0; font-size:80%;"><a href="/admin/jobs/edit/{{result.Job.id}}" class="job-lookup-result-link">{{result.Job.name}}</a> ({{result.Job.id}}), {{result.Company.name}}, {{result.Job.created | dateToISO | date:'shortDate'}}</li>
<li class="job-lookup-result" ng-hide="data.length > 0">No matches found.</li>
</ul>以下是错误:
[15:17:40.890] "Error: [$interpolate:interr] http://errors.angularjs.org/1.2.5/$interpolate/interr?p0=%20(%7B%7Bresult.Job.id%7D%7D)%2C%20%7B%7Bresult.Company.name%7D%7D%2C%20%7B%7Bresult.Job.created%20%7C%20dateToISO%20%7C%20date%3A'shortDate'%7D%7D&p1=RangeError%3A%20invalid%20date
...我不明白这个错误,但是如果它与我的自定义过滤器相关,这里是:
app.filter('dateToISO', function() {
return function(input) {
input = new Date(input).toISOString();
return input;
};
});更新当我删除它工作的| dateToISO |时。因此,它似乎连接到自定义筛选器。
发布于 2013-12-24 23:07:09
好吧,由于FireFox对糟糕的日期格式有兴趣(Chrome会忽略它),您将不得不手动修复该格式。过滤器仍然是要走的路。
标记:
<div>{{Object.created | badDateToISO | date:'shortDate'}}</div>JavaScript:
app.filter('badDateToISO', function() {
return function(badTime) {
var goodTime = badTime.replace(/(.+) (.+)/, "$1T$2Z");
return goodTime;
};
});现场演示(点击)。
发布于 2014-10-09 17:51:56
对我来说,唯一有效的跨浏览器格式是:
var date = new Date(input); // Where input is '2013-12-25T13:12:01' for examplehttps://stackoverflow.com/questions/20766636
复制相似问题