【发布时间】:2015-03-25 17:45:14
【问题描述】:
我有一个网页调用一些 PHP api 并呈现结果。
PHP 查询 MySQL 数据库并返回使用 AngularJS 指令和过滤器反序列化和格式化的 JSON 对象。
问题上升,因为 AngularJS 日期过滤器不直接支持 MySql 日期。
所以我写了这个
angular.module(...)
.filter('mysqlDateToISO', function() {
return function(input) {
input = new Date(input).toISOString();
return input;
};
});
和 HTML 部分看起来像
<p>
Pubblicato il
{{arg.pubblicato_il | mysqlDateToISO
| date:"dd MMM yyyy 'alle ore' HH:mm:ss"}}
</p>
Chrome 正确呈现结果:
Pubblicato il 25 Mar 2015 alle ore 16:01:00
Firefox 却没有:
Pubblicato il {{arg.pubblicato_il | mysqlDateToISO |日期:“dd MMM yyyy 'alle ore' HH:mm:ss"}}
Firefox 控制台显示此错误
RangeError: 无效日期
错误来自input = new Date(input).toISOString()
我该如何解决?
【问题讨论】:
-
在 FF 中,AngularJS 是否正确解释了某事:{{ arg.pubblicato_il }}? ( 没有更多的 {{ ... }})?
-
这是默认的
DATE还是DATETIME?你能举一个从mysql出来的日期格式的例子吗?或者最好是一组可重现的代码? -
@DylanWatt:这是标准日期时间,例如 2015-03-25 16:01:00
-
@RaphaëlBraud:
{{ arg.pubblicato_il }}被正确处理,但作为字符串而不是日期时间...... -
如果您在页面上看到花括号,这几乎可以肯定意味着您遇到了阻止正确角度编译的 JS 错误。控制台中没有错误吗?