JSON.stringify转换Date不正确的解決方法

JSON.stringify转换Date不正确的原因:国际时区(UTC)和中国时区(GMT)的原因,东八区+8等于国际时区。

解决方法,重新Es5的Date.prototype.toJSON方法,代码如下:

function dateFormat(date, fmt) {
    if (null == date || undefined == date) return '';
    var o = {
        "M+": date.getMonth() + 1, //月份
        "d+": date.getDate(), //日
        "h+": date.getHours(), //小时
        "m+": date.getMinutes(), //分
        "s+": date.getSeconds(), //秒
        "S": date.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

Date.prototype.toJSON = function () { return dateFormat(this,'yyyy-MM-dd')}
JSON.stringify(data);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hotqin888的专栏

用Echarts制作供水工程地图迁移动画

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

4731
来自专栏数据结构与算法

P1164 小A点菜

题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。 uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。...

2936
来自专栏Android干货

Android项目实战(二十九):酒店预定日期选择

2634
来自专栏Rindew的iOS技术分享

iOS实现三列表格点选(附Demo)

1953
来自专栏生信技能树

基因名变化太快,比如PAM50

当然准备把这些基因跟ensembl数据库的ID对应的时候我发现少了3个,然后我搜索发现它们的symbol其实被修改了,可以说变化比较快啦,才几年时间,3 of ...

1342
来自专栏liulun

使用开源项目Alipay.AopSdk.Core完成支付宝网页登录

核心方法: public IActionResult UserInfoCallBackAli() { var alipa...

3677
来自专栏曾大稳的博客

ffmpeg音视频合成

原理 : 主要是拿到视频文件得视频流,然后拿到音频文件的音频流,根据时间戳一帧一帧的封装成一个新的视频文件

8474
来自专栏张伟博客

微软邮箱后缀一网打尽

4426
来自专栏云计算与大数据

研发:What is a DDoS Attack?

A distributed denial-of-service (DDoS) attack is a malicious attempt to disrupt ...

1242
来自专栏生信技能树

linux 命令中英文对照,收集

听说markdown排版得用浏览器打开,点击最下面的阅读原文也可以! Is Linux CLI case-sensitive? The answer is, y...

3846

扫码关注云+社区

领取腾讯云代金券