html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

JSON.stringify转换JSON时日期时间不准确的解决方法_javascript技巧_

[ ] 已经帮助:人解决问题

调用JSON.stringify将对象转为对应的字符串时,如果包含时间对象,时间对象会被转换为国家标准时间(ISO),而不是当前国家区域的时间,测试代码如下:u9iHTML5中文学习网 - HTML5先行者学习网

u9iHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
u9iHTML5中文学习网 - HTML5先行者学习网
<script>u9iHTML5中文学习网 - HTML5先行者学习网
    //var o = new Date();u9iHTML5中文学习网 - HTML5先行者学习网
    //console.log(o.toString())//中国时区时间,格式如“Wed Jun 11 2014 10:51:42 GMT+0800”u9iHTML5中文学习网 - HTML5先行者学习网
    //console.log(JSON.stringify(o)); //输出国际标准时间(ISO),减少了8个小时 格式如“2014-06-11T02:51:42.624Z”u9iHTML5中文学习网 - HTML5先行者学习网
</script>u9iHTML5中文学习网 - HTML5先行者学习网
u9iHTML5中文学习网 - HTML5先行者学习网

要想JSON.stringify转换日期对象Date返回当前所在国家的时区,而不是国际标准时间,可以重写Date对象的prototype的toJSON方法,返回自定义时间格式,因为JSON.stringify调用的就是Date对象的toJSON方法,示例如下:u9iHTML5中文学习网 - HTML5先行者学习网

u9iHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
u9iHTML5中文学习网 - HTML5先行者学习网
<script>u9iHTML5中文学习网 - HTML5先行者学习网
    Date.prototype.toJSON = function () { return this.toLocaleString(); }u9iHTML5中文学习网 - HTML5先行者学习网
    var o = new Date();u9iHTML5中文学习网 - HTML5先行者学习网
    console.log(o.toString())//默认格式:“Wed Jun 11 2014 10:51:42 GMT+0800”u9iHTML5中文学习网 - HTML5先行者学习网
    console.log(JSON.stringify(o)); //输出自定义的本地时间:“2014年6月11日 10:57:27”u9iHTML5中文学习网 - HTML5先行者学习网
</script>u9iHTML5中文学习网 - HTML5先行者学习网
u9iHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助