Angularjs:如何更改日期格式

Angularjs:如何更改日期格式,angularjs,date-format,Angularjs,Date Format,我正在从数据库获取循环中的日期。格式如“2015-09-21 18:30:00”。但是我想把它改成'dd/MM/yyyy'。 我试过这样做 {{obj.added_date | date : 'dd/MM/yyyy'}} 它显示出 2015-09-21 18:30:00 | date : 'dd/MM/yyyy'}} 如果我使用fulldate is,则显示如下: 2015-09-21 18:30:00 | date : 'fullDate'}} 对于shortDate,它显示如下: 20

我正在从数据库获取循环中的日期。格式如“2015-09-21 18:30:00”。但是我想把它改成'dd/MM/yyyy'。 我试过这样做

{{obj.added_date | date : 'dd/MM/yyyy'}}
它显示出

2015-09-21 18:30:00 | date : 'dd/MM/yyyy'}}
如果我使用fulldate is,则显示如下:

2015-09-21 18:30:00 | date : 'fullDate'}}
对于shortDate,它显示如下:

2015-09-21 18:30:00 | date : 'shortDate'}}

我所做的是在绑定angular JS中的数据之前,您可以格式化数据

//Here i am taking the DOB from session and converted the format in dd-MM-yyyy format
string DOB = ((ABC.Models.Student)Session["Student"]).DOB.ToString("dd-MM-yyyy");

 //Here i have used a hidden field where i am going to store DOB in ng-Init 
 <input type="hidden" name="DOB" id="DOB" ng_init = "DOB=' " + "Date of Birth: " + DOB + "'"  /><br />
//这里我从会话中获取DOB,并将格式转换为dd-MM-yyyy格式
字符串DOB=((ABC.Models.Student)Session[“Student”]).DOB.ToString(“dd-MM-yyyy”);
//在这里,我使用了一个隐藏字段,在这里我将在ng Init中存储DOB

以后可以调用ng bind方法进行显示

<p ng-bind="DOB"></p>


您指定的日期格式与AngularJS文档中提供的输入规范不匹配。以下内容摘自

将日期格式化为日期对象、毫秒(字符串或数字)或各种ISO 8601日期时间字符串格式(例如yyyy-MM-ddTHH:MM:ss.sssZ及其较短版本,如yyyy-MM-ddTHH:mmZ、yyyy-MM-dd或YYYYYYMMDDHMMSSZ)。如果字符串输入中未指定时区,则该时间被视为在本地时区中


我建议您将日期值转换为毫秒,然后将其传递到筛选器。

传递到视图的日期实际上是一个字符串,因此角度日期筛选器无法将其识别为日期对象。首先需要将其转换为日期对象

还要注意firefox,它不适用于
newdate()如果日期分隔符用“-”代替“/”。因此,我也建议如下

var myApp=angular.module('myApp',[]);
myApp.controller('MyCtrl',['$scope','$filter',函数($scope,$filter){
var dateStr='2015-09-21 18:30:00';
$scope.dt=$filter('date')(新日期(dateStr.split('-').join('/')),“d/M/yyyyy”在'h:mm a');
}]);

{{dt}}

检查日期:“dd/mm/yy”是否将用于workmake自定义筛选器,并为此使用javascript。@Rajesh:date:“dd/mm/yy”不起作用我得到的日期类似于“2015-09-21 18:30:00”“来自不是对象的DB。请仔细阅读问题。你能发布你的代码,这样我就可以检查问题了吗?这不是单一日期,它是循环的,不确定如何按照你的建议去做。如果是这样,请创建你自己的过滤器,让我为你编辑我的答案查看我编辑的答案,希望这就是你要找的!