Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于替换Sharepoint返回的json日期中的某些字符串的自定义筛选器_Javascript_Json_Angularjs_Date_Sharepoint - Fatal编程技术网

Javascript 用于替换Sharepoint返回的json日期中的某些字符串的自定义筛选器

Javascript 用于替换Sharepoint返回的json日期中的某些字符串的自定义筛选器,javascript,json,angularjs,date,sharepoint,Javascript,Json,Angularjs,Date,Sharepoint,我正在处理从Angularjs get请求返回的json数据。此数据来自Sharepoint列表 日期是一个json日期字符串,看起来像/date(350697600000)/ 因此,我正在与Angularjs合作,我需要以“正常”的方式或我希望的方式显示这个日期。json数据是一个对象数组,所以我用ng repeat在无序列表中显示数据。我正在尝试创建一个自定义过滤器,它将用一个空字符串替换/Date(and)/即我只需要数字。我需要在页面上显示此对象数组中的每个json日期时进行转换 这是迄

我正在处理从Angularjs get请求返回的json数据。此数据来自Sharepoint列表

日期是一个json日期字符串,看起来像
/date(350697600000)/

因此,我正在与Angularjs合作,我需要以“正常”的方式或我希望的方式显示这个日期。json数据是一个对象数组,所以我用ng repeat在无序列表中显示数据。我正在尝试创建一个自定义过滤器,它将用一个空字符串替换/Date(and)/即我只需要数字。我需要在页面上显示此对象数组中的每个json日期时进行转换

这是迄今为止我在自定义过滤器中的内容:

app.filter('dateFilter', function() {
   return function(obj) {
      return obj.replace(/\/([^a-zA-Z])\/ /gi, "");
   }    
});
我的html代码如下所示:

<li class="adv_li adv_li_birthday" ng-repeat="b in birthdays">
   <div id="adv_birthday" ng-bind="b.Birthday | dateFilter | date:'d. MMMM yyyy'"></div>
   <div ng-bind="b.Employee.Name"></div>
</li>
  • 每个人都能猜到我的过滤器坏了。我真的不知道如何使用.replace(),甚至不知道使用自定义过滤器来解决这个问题是否是最好的方法。我需要一些帮助。希望我的问题不要含糊不清


    提前谢谢大家

    我有两个理论,我将同时阐述它们

    首先,我认为你的过滤器应该返回一个日期,而且,我认为正则表达式可以改进

    app.filter('dateFilter', function() {
       return function(obj) {
          return new Date(parseInt(obj.replace(/\D/g, '')));
       }    
    });
    

    我使用特定的return语句从相同的格式获取日期,尽管它不在角度项目中。

    我建议您查看日期时间解析和操作。这种时间格式被称为Unix Epoch,在这一刻,您可以编写如下内容

    var date = moment('Date(350697600000)')
    

    是的,这可能是一个很好的过滤器用例。看看moment.js如果你还没有,它可能会提供你想要的功能。你看Angular的了吗?不知道我是否可以在这个项目中使用moment,注入sharepoint Web部件的代码。但我正在检查。有什么方法可以让我得到我必须要做的工作吗?是的,我使用的是日期角度过滤器,它似乎无法转换这个字符串…不要认为它可以,谷歌它一点日期过滤器只能过滤数字部分,如果我复制粘贴它而不是b。生日…我需要摆脱/date(和)/Wow非常感谢!这似乎成功了:D…把它改成了这个,它终于成功了:)…糟糕的是,我还不能投票!Takk Flati先生;)我认为最好是取消“日期”并添加格式,所以。。。大多数情况下,矩(350697600000).format(“yourFormat”)在大多数情况下矩.js都能很好地工作,但因为我在Angularjs中使用了ng repeat,所以自定义过滤器工作得更好,我需要编写的额外代码更少。难道不能在过滤器中使用矩吗?我不是角度专家,但我认为这是可能的。比如:内联
    app.filter('dateFilter',function(){return function(obj){return moment(obj.toDate();})是的,你可以这样做,只是我不需要添加到我的Sharepoint Web部件中的额外内容:)…甚至不确定moment是否能与Sharepoint一起工作,尽管可能如此。