栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用JSON.parse Reviver参数解析日期字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用JSON.parse Reviver参数解析日期字符串

  1. 正则表达式期望使用“ Zulu”时区(末尾为“ Z”字符),而示例日期-时间字符串则显示数字时区(“ -04:00”)。以下正则表达式将接受两种:
    /^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2}(?:.d*)?)(Z|([+-])(d{2}):(d{2}))$/

如果时区数字不为零,则您可能要在解析和/或转换为UTC之后实际修改日期,以遵守时区。

  1. 我可以看到dateReviver()被击中了。在浏览器中尝试以下操作:
        <!-- saved from url=(0014)about:internet -->    <html>        <head> <script src="http://www.json.org/json2.js"></script> <script type="text/javascript" src="http://ajax.Microsoft.com/ajax/jQuery/jquery-1.3.2.js"></script> <script>     $(function () {         // a mock proxy to return some json to play with         var proxy = {  getArticle: function(id, foo) { foo({      result: '["2009-04-04T22:55:16.0000000-04:00"]'  }); }         };         // the origial Site object, with the fixed regex         var Site = {  dateReviver: function(key, value) {      var a;      if (typeof value === 'string') {          a = /^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2}(?:.d*)?)(Z|([+-])(d{2}):(d{2}))$/.exec(value);          if (a) {   return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],        +a[5], +a[6]));          }      }      return value;  },  loadArticle: function(id) {      proxy.getArticle(id, function(response) {          var data = JSON.parse(response.result, Site.dateReviver);          // put the parsed JSON date on the page          $("#output").html(data[0].toString());      });  }         };         // try out our Site object         Site.loadArticle();     }); </script>        </head>        <body> <div id="output"></div>        </body>    </html>

我在浏览器中得到以下指示成功解析的信息:

    Sat Apr 4 15:55:16 PDT 2009


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号