Javascript 角力矩选择器库中的日期格式问题
我的HTML中有以下代码,使用Angular V1.6.3以及来自的Angular力矩选择器。我想使用格式Javascript 角力矩选择器库中的日期格式问题,javascript,angularjs,date,momentjs,angular-moment,Javascript,Angularjs,Date,Momentjs,Angular Moment,我的HTML中有以下代码,使用Angular V1.6.3以及来自的Angular力矩选择器。我想使用格式DD-MM-YYYY显示日历 <div moment-picker="member.memberSince" format="DD-MM-YYYY" max-view="month" start-view="month" autoclose="true" today="true" ng-model="member.memberSince"
DD-MM-YYYY
显示日历
<div moment-picker="member.memberSince"
format="DD-MM-YYYY"
max-view="month"
start-view="month"
autoclose="true"
today="true"
ng-model="member.memberSince"
start-date="member.memberSince | date : 'dd-MM-yyyy'">
{{ member.memberSince | date : 'dd-MM-yyyy' || "Select a date" }}
</div>
{{member.memberSince | date:'dd-MM-yyyy'| | |“选择一个日期”}
我有两个问题
member.memberSince
时,日期是
显示良好,例如01-04-2017
。但是当我从中选择日期时
日历,它以不需要的格式显示日期,例如2017年4月1日星期六00:00:00 GMT+0530李>
member.memberSince
,那么我
在页面上看不到任何用于选择日历的控件ng modal
)在div
上不起作用。
因此,请尝试以下方法:
<div ng-app="myApp" ng-controller="myCtrl">
<div
moment-picker="member.datepicker"
max-view="month"
start-view="month"
format="DD-MM-YYYY"
autoclose="true"
today="true"
>Member Sience
{{ member.datepicker | date:'dd-MM-yyyy' || 'Select a date' }}
</div>
<script>
var app = angular.module('myApp', ['moment-picker']);
app.controller('myCtrl', function($scope) {
$scope.member ={
datepicker:new Date()
}
});
</script>
成员Sience
{{member.datepicker | date:'dd-MM-yyyy'| |'选择一个日期'}
var-app=angular.module('myApp',['moment-picker']);
应用程序控制器('myCtrl',函数($scope){
$scope.member={
日期选择器:新日期()
}
});
这里有多个问题
我们先来看看,
时刻选择器
:双向可绑定属性作为格式化的日期时间字符串
ng model
:作为Moment.js对象的双向可绑定属性
现在,由于明显的原因,我们不应该将两者设置为相同的属性。如果您提供了具有相同属性的ng model
,它似乎会优先考虑该属性,并将该属性设置为矩.js对象
接下来,当您有{{memberSince | date:'dd-MM-yyyy'| | | |“选择一个日期”}
(其中memberSince
设置为ng model
),它最初有一个字符串
/日期
对象。但当您选择一个日期时,它再次成为Moment.js对象,显然它不符合日期:'
您的问题的解决方案(如果您还没有找到答案的话)是删除指令中的ng model
set。您还可以从moment picker=“memberSince”
自由访问memberSince
,因为它将是您提供格式的格式化字符串,即DD-MM-yyyyy
<div moment-picker="member.memberSince"
format="DD-MM-YYYY"
max-view="month"
start-view="month"
autoclose="true"
today="true"
ng-model="member.memberSince"
start-date="member.memberSince | date : 'dd-MM-yyyy'">
{{ member.memberSince | date : 'dd-MM-yyyy' || "Select a date" }}
</div>
在HTML中,您可以使用{{memberSince | | |“Select a date”}
,而无需使用Angular的date
过滤器,因为memberSince
只是一个以提供的格式包含所选日期的字符串
您可以将locale=“en”与format=“DD-MM-YYYY hh:MM a”一起使用,然后创建一个plunker,可能会重现问题?@tanmay plunker补充道。谢谢@tanmay。我已经开始使用angular 2周前,并学习了很多关于它的东西。你的解决方案奏效了,尽管我不能像你在你的车里设定的那样设定日期。这个值作为一个大对象的一部分来自后端,所以我必须在服务器端本身格式化这个值。但是成功了!再次感谢。@Aakash我很高兴这能帮上一点忙!:)文档告诉您将两者设置为同一个对象,这对我来说一直很有效。AngularJS的
date
过滤器仅适用于date
对象,而不适用于Moment
对象。