从ASP.net到AngularJS的日期格式
ASP.net to AngularJS date format
我有一个使用AngularJS显示数据的ASP.net应用程序。我正在检索包含日期列的数据列表。当我使用console.log打印从服务器/数据库返回的数据时,我看到的日期以"2016年2月11日星期四00:00:00 GMT+1100(美国东部夏令时)"的格式打印。为什么服务器以这种格式返回日期?我怎样才能更改日期格式?我希望格式为DD/MM/YYYY HH:MM以下是我的一些检索数据的代码:
public JsonResult GetEventList()
{
var result = from e in db.events
select new
{
event_id = e.event_id,
event_name = e.event_name,
event_date = e.event_date
}
return Json(result.ToList(), JsonRequestBehavior.AllowGet);
}
Json响应如下:
{ event_id: 1, event_name: 'Event', event_date: 'Mon Jan 11 2016 00:00:00 GMT+1100 (AUS Eastern Daylight Time)' }
实际上你得到的是:
Mon Jan 11 2016 00:00:00 GMT+1100 (AUS Eastern Daylight Time)
您可以尝试向Date对象添加自定义格式,如下所示:
Date.prototype.formatMMDDYYYYHHMMSS = function () {
return (this.getDate()) +
"/" + ((this.getMonth() + 1) < 10 ? ("0" + (this.getMonth() + 1)) : (this.getMonth() + 1)) +
"/" + this.getFullYear() +
" " + this.getHours() +
":" + this.getMinutes() +
":" + this.getSeconds();
};
如何使用此函数:
使用长日期字符串设置日期变量
var date = "Mon Jan 11 2016 00:00:00 GMT+1100 (AUS Eastern Daylight Time)";
将日期转换为Date()
。
date = new Date(date);
然后,通过使用date.formatMMDDYYYYHHMMSS()
,得到转换后的日期。
Javascript演示
var date = "Mon Jan 11 2016 00:00:00 GMT+1100 (AUS Eastern Daylight Time)";
Date.prototype.formatMMDDYYYYHHMM = function() {
return (this.getDate()) +
"/" + ((this.getMonth() + 1) < 10 ? ("0" + (this.getMonth() + 1)) : (this.getMonth() + 1)) +
"/" + this.getFullYear() +
" " + this.getHours() +
":" + this.getMinutes();
};
var datea = new Date(date);
console.log(datea.formatMMDDYYYYHHMM());
在AngularJS中使用$过滤器:
(function() {
"use strict";
var app = angular.module("myApp", []);
app.controller("Controller", ["$scope", "$filter",
function($scope, $filter) {
$scope.eventList = [{
"event_id": 1,
"event_name": "Event",
"event_date": "Mon Jan 11 2016 00:00:00 GMT+1100 (AUS Eastern Daylight Time)"
}, {
"event_id": 2,
"event_name": "Event 2",
"event_date": "Mon Jan 11 2016 15:48:00 GMT+1100 (AUS Eastern Daylight Time)"
}];
// Using the toDateTime $filter in the Controller.
$scope.showDate = function(event) {
console.log($filter("toDateTime")(event.event_date));
};
}
]);
app.filter("toDateTime", function() {
return function(x) {
Date.prototype.formatMMDDYYYYHHMM = function() {
return (this.getDate()) +
"/" + ((this.getMonth() + 1) < 10 ? ("0" + (this.getMonth() + 1)) : (this.getMonth() + 1)) +
"/" + this.getFullYear() +
" " + this.getHours() +
":" + this.getMinutes();
}
return new Date(x).formatMMDDYYYYHHMM();
};
});
})();
<html data-ng-app="myApp">
<head>
<title>Demo AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body data-ng-controller="Controller">
<table>
<thead>
<tr>
<th>
event_id
</th>
<th>
event_name
</th>
<th>
event_date
</th>
<th>
Show Date
</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="event in eventList">
<td>{{event.event_id}}</td>
<td>{{event.event_name}}</td>
<td>{{event.event_date | toDateTime}}</td>
<!-- Using the toDateTime $filter in the View. -->
<td>
<button data-ng-click="showDate(event)" type="button">Show Date</button>
</td>
</tr>
</tbody>
</table>
</body </html>
假设ASP方面的时间是DateTime格式,
从控制器的ASP中检索:"/日期(1441164289937)/"
过滤器(在控制器侧):
.filter('convertDateTime', function($filter) {
return function(input) {
var timeFormat = 'dd MMM yyyy HH:mm'; //date format
if(input == null) { return "";}
return $filter('date')(parseInt(input.substr(6)), timeFormat);
};
})
你可以根据自己的喜好修改上面的javascript代码。但逻辑是一样的。但是你需要先把DateTime改成一个javascript Date。这样的例子有很多。
相关文章:
- Javascript日期格式类似于ISO,但本地
- NodeJS日期格式不起作用
- 将客户端特定的日期格式返回到服务器MVC4
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 将Javascript日期转换为ASP.NET日期格式
- 在达到状态之前在Redux Reducer中设置日期格式
- 如何从Angularjs中的新日期获取日期格式
- 如何使用jquery更改为所需的日期格式
- keith wood日期选择器日期格式和语言
- Dygraph更改日期格式
- 确定Twig(或JavaScript)中的国际日期格式,以便在其他地方使用
- javascript和jquery日期格式转换
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 在Datepicker中将日期格式更改为yyyy-mm-dd
- 在Karma Jasmine单元测试用例中检查日期格式
- 使用不同的日期格式和区域设置创建时刻
- 更改日期选择器上的日期格式
- 以日期计算的天数更改日期格式
- 带有onchange的日期格式
- 如何从区域设置获取日期格式