使用 Angular JS 过滤器转换日期失败
Converting date using Angular JS filter fails
我正在使用 angular js 过滤器在控制器上格式化日期。用户从 uib-datepicker-popup
中选择一个日期。这是我想要使用 ISO 8601
(yyyy-mm-dd) 日期格式格式化的日期。然后我记录用户选择的日期并得到类似这样的东西
Sat Aug 20 2016 00:00:00 GMT+0300 (EAT)
但是我会像这样使用 angular $filter
$filter('date')(new Date(vm.my_date), 'yyyy-mm-dd');
最后的日期是
2016-00-20
这是我控制器上的代码
// Logs Sat Aug 20 2016 00:00:00 GMT+0300 (EAT)
console.log(vm.my_date);
var converted = $filter('date')(new Date(vm.my_date), 'yyyy-mm-dd');
// Logs 2016-00-20
console.log(converted);
我做错了什么?
你为什么不使用 ui.bootstrap.dateparser?当 ui.bootstrap.datepicker 中已经内置了一个自定义过滤器时,无需创建自定义过滤器。 Angular Directives for Bootstrap
过滤器应该像 'yyyy-MM-dd'
查看此文档 angular filter
当您在过滤器中写入 mm
时,过滤器认为您的意思是 minutes
。
为了让过滤器理解 m
s 需要大写,所以它理解你的意思是 month
.
更改过滤器来自:
var converted = $filter('date')(new Date(vm.my_date), 'yyyy-mm-dd');
至
var converted = $filter('date')(new Date(vm.my_date), 'yyyy-MM-dd');
会解决您的问题。
我正在使用 angular js 过滤器在控制器上格式化日期。用户从 uib-datepicker-popup
中选择一个日期。这是我想要使用 ISO 8601
(yyyy-mm-dd) 日期格式格式化的日期。然后我记录用户选择的日期并得到类似这样的东西
Sat Aug 20 2016 00:00:00 GMT+0300 (EAT)
但是我会像这样使用 angular $filter
$filter('date')(new Date(vm.my_date), 'yyyy-mm-dd');
最后的日期是
2016-00-20
这是我控制器上的代码
// Logs Sat Aug 20 2016 00:00:00 GMT+0300 (EAT)
console.log(vm.my_date);
var converted = $filter('date')(new Date(vm.my_date), 'yyyy-mm-dd');
// Logs 2016-00-20
console.log(converted);
我做错了什么?
你为什么不使用 ui.bootstrap.dateparser?当 ui.bootstrap.datepicker 中已经内置了一个自定义过滤器时,无需创建自定义过滤器。 Angular Directives for Bootstrap
过滤器应该像 'yyyy-MM-dd' 查看此文档 angular filter
当您在过滤器中写入 mm
时,过滤器认为您的意思是 minutes
。
为了让过滤器理解 m
s 需要大写,所以它理解你的意思是 month
.
更改过滤器来自:
var converted = $filter('date')(new Date(vm.my_date), 'yyyy-mm-dd');
至
var converted = $filter('date')(new Date(vm.my_date), 'yyyy-MM-dd');
会解决您的问题。