解决mongodb 取出时是 UTC时间问题

解决mongodb 取出时是 UTC时间问题。

问题描述:将一个时间类型数据保存到mongodb数据库中,在数据库中时间还是正常的时间,如

mark

但是后台拿出来的时候却是这样的(node.js)

mark

解决方案:

网上查阅了很多资料,可我没找到一个解决方案(可能我比较傻吧),我只有自己想解决方案。

我的解决步骤:

1.将UTC时间转换为data类型时间
/*publish在这里是一个数组,数组里面的每一项都是一个对象。 
  比如:publish[0].publishDate = 2019-03-15T08:44:07.842Z
*/
/*遍历publish数组*/
      publish.forEach(function (e) {
          console.log(new Date(e.publishDate).toLocaleString())    
        })

结果:

mark

瞬间特别开心,以为解决了,谁知?(哎!)

2.我开始将转变后的时间赋给原对象:
/*遍历publish数组*/
      publish.forEach(function (e) {
             e.publishDate = new Date(e.publishDate).toLocaleString()
             console.log(e.publishDate)
        })

结果:

mark

我百思不得其解,我也不知道为什么会这样,我想不可能啊!

于是:我想方设法查明其中的原有,最终我发现了一个问题:

        console.log(typeof(publish[0].publishDate)) //object
        console.log(typeof(new Date(publish[0].publishDate).toLocaleString()))//string

原来是类型不一样,怪不得不能直接赋值,我何不把它们转换成一样的类型,然后进行赋值呢,于是,我有进行了下面的操作:

       publish.forEach(function (e) {
             e.publishDate =JSON.parse(new Date(e.publishDate).toLocaleString())
            console.log(e.publishDate)
        })

但结果报错了:

mark

3.在我无限困惑的时候:我终于想到了一种可行的解决方案===>

我给publish新加了一个属性值:

mark

然后在代码中:

      publish.forEach(function (e) {
             e.UTCtodata =new Date(e.publishDate).toLocaleString()
             console.log(e.UTCtodata)
        })

结果:

mark

渲染到页面:

 <span class="list_time_submit">{{publish[i].UTCtodata}}</span>

页面效果:

mark

这就是我解决mongodb取出时间是UTC时间的解决办法,如果你们有特别好,特别简单的处理办法,可一定要告诉我哦!

微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小P孩一枚

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值