我正在使用angularjs和angularjs bootstrap ui(http://angular-ui.github.io/bootstrap/)。
我想使用datepicker指令(http://angular-ui.github.io/bootstrap/#/datepicker)。
我从数据库中获取字符串值
2015-07-30 15:10
Angular希望将日期对象作为模型,但我无法使用该字符串创建日期对象。我得到的错误是
错误:[ngModel:datefmt] http://errors.angularjs.org/1.4.3/ngModel/datefmt?p0=2015-07-30
anyboy可以帮我用角度创建一个日期对象,其字符串具有这种格式 - >的 YYYY-MM-DD
更多信息: 字符串在我的范围内
$scope.event.startdate
我将它分为日期,小时和分钟。
$scope.startpoint = {
date: $scope.event.startdate.substring(0, 10),
hours: $scope.event.startdate.substring(11, 13),
mins: $scope.event.startdate.substring(14, 16)
};
数据库是MongoDB
谢谢 阿德里安
答案 0 :(得分:3)
您可以使用通用的JavaScript解决方案。例如,您可以serega386's answer使用similar javascript question:
var st = "26.04.2013";
var pattern = /(\d{2})\.(\d{2})\.(\d{4})/;
var dt = new Date(st.replace(pattern,'$3-$2-$1'));
答案 1 :(得分:1)
您可以在控制器中使用以下代码
$scope.newDate =new Date($scope.event.startdate);
以及模板中的代码
{{newDate | date:'yyyy-MM-dd'}}
参考:AngularJS/javascript converting a date String to date object
答案 2 :(得分:0)
如果您将日期作为单个数字集来获取
1288323623006
您可以直接在其上使用日期格式化程序。(来自angular doc here)
<span ng-non-bindable>{{1288323623006 | date:'medium'}}</span>:
<span>{{1288323623006 | date:'medium'}}</span><br>
<span ng-non-bindable>{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}</span>:
<span>{{1288323623006 | date:'yyyy-MM-dd HH:mm:ss Z'}}</span><br>
预期结果
我希望能解决你的问题,让我知道如果我错过了什么。