如何将字符串转换为新的日期

时间:2015-07-24 10:31:31

标签: angularjs

我正在使用angularjs,从后端我得到一个像这样的字符串的日期信息

/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)/`

                });

            }

2 个答案:

答案 0 :(得分:1)

您知道 angularjs过滤器的格式吗? Doc

示例: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);


}

答案 1 :(得分:-1)

即使AngularJs为日期提供过滤功能,也无法过滤JSON日期,站在文档中:

  

格式化日期对象,毫秒(字符串或数字)的日期   或various ISO 8601日期时间字符串格式(例如   yyyy-MM-ddTHH:mm:ss.sssZ及其较短的版本   yyyy-MM-ddTHH:mmZ,yyyy-MM-dd或yyyyMMddTHHmmssZ)

您应该将其转换为日期,然后使用过滤器,或者,如果您希望创建自定义过滤器like this(未经我测试,只是一个想法)。

否则我建议使用像moment.js这样的库:

moment("/Date(1262293800000+0300)/") // 

该库还提供了一些formatting选项,可以根据需要显示数据。

您应该使用ISO8601投诉日期,这是一种旧格式,如果您在.NET环境中,请查看JSON.net序列化库。