Я использую angularjs
, из back-end я получаю информацию о дате как строку, подобную этой
/Date(1262293800000+0300)/
Как можно преобразовать эти данные в удобочитаемую дату, например, например: 04 March 2015
?
вот моя функция:
$scope.conractorInfo = function ( contractor ) {
$location.search('id', contractor.Id);
server.contractor.get({id:$routeParams.id, contid:contractor.Id}).$promise.then(function (data) {
$scope.contractor = data;
console.log(typeof $scope.contractor.WeekDate);
//consoles as : '/Date(1262293800000+0300)/'
});
}
Вы знаете формат с угловым фильтром? доктор
Пример: jsfiddle
Файл Html
<div ng-controller="TestCtrl">
<span>{{date[0] | date:'mediumDate'}}</span>
</div>
Файл Js
angular.module('myApp', []);
function TestCtrl($scope) {
var regex = /\d+/g;
var string = "/Date(1262293800000+0300)/";
$scope.date = string.match(regex);
}
<span>{{contractor.WeekDate | date:'medium'}}</span>
но результат в браузере - /Date(1262293800000+0300)/
- вот так.
Даже если AngularJs предлагает функцию фильтра для даты, это не может фильтровать дату JSON, стоя на документации:
Дата для форматирования как объекта Date, миллисекунды (строка или номер) или различные форматы строк даты и времени ISO 8601 (например, yyyy-MM-ddTHH: mm: ss.sssZ и его более короткие версии, такие как yyyy-MM-ddTHH: mmZ, yyyy-MM -dd или yyyyMMddTHHmmssZ)
Вы должны преобразовать его в дату, а затем использовать фильтр или, если хотите создать собственный фильтр, подобный этому (не проверенный мной, просто идея).
В противном случае я бы предложил использовать библиотеку, например, moment.js:
moment("/Date(1262293800000+0300)/") //
Библиотека также предлагает некоторые параметры форматирования для отображения данных по вашему желанию.
Вы должны использовать дату жалобы ISO8601, это старый формат, если вы находитесь в среде.NET, посмотрите на библиотеку сериализации JSON.net.