AngularJS - 转换EPOC日期

时间:2014-10-21 15:06:44

标签: javascript jquery angularjs angularjs-scope

我有一个JSON文件,其中包含EPOC格式的日期列表:

"Date": "/Date(1405967947000)/",
"Date": "/Date(1405967947000)/",
"Date": "/Date(1405967947000)/",
"Date": "/Date(1405967947000)/",
"Date": "/Date(1405967947000)/",
"Date": "/Date(1405967947000)/",
"Date": "/Date(1405967947000)/",
"Date": "/Date(1405967947000)/",

我知道在Angular中我可以通过以下方式轻松过滤这些格式:

convertDate = $filter('date')(myScopeToDate, 'dd MMM yyyy');

但是,理想情况下我想以这种格式进行转换:

Tue Oct 21 2014 00:00:00 GMT+0000 (GMT Daylight Time)

所以我试过了:

var convertDate = new Date(myScopeToDate);

但输出结果为:"无效日期"

2 个答案:

答案 0 :(得分:2)

您所看到的是JavaScript的Date对象无法理解ASP.NET的日期格式。 (旁注:ASP.NET Web API的日期不同,使用standard ISO 8601 format,感谢上帝!)

就个人而言,我会使用Moment.js来解决这个问题,该问题有intrinsic support for ASP.NET dates

var momentDate = moment("/Date(1198908717056-0700)/");
var rawDate = momentDate.toDate(); // Tue Oct 21 2014 00:00:00 GMT+0000 (GMT Daylight Time)

答案 1 :(得分:1)

你应该结合你在答案中提出的两件事

       var dateString = $filter('date')(myScopeToDate, 'yyyy-MM-dd')
       var date = new Date(dateString)

你应该尝试使用ToGMTString(),ToISOString(),ToLocalString()来获取你想要的字符串表示。

或最好的方法是将moment.js用于所有日期操作

       var date = moment(myScopeToDate).toDate()