收藏
回答

微信小程序js直接用new Date()无法获取中国时间

问题模块 框架类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 date 工具 6.3 1.9




直接用var xx = new Date() 得出的是格林威治的 ,怎么样改成东八区呢?

我在原生js用这个却是出来中国时间的,求解?

最后一次编辑于  2018-03-15
回答关注问题邀请回答
收藏

5 个回答

  • 黄正梦
    黄正梦
    07-01

    // 获取当前时间

    getNowTimeParse() {

        const time = new Date();

        const YYYY = time.getFullYear();

        const MM = time.getMonth() < 9 ? '0' + (time.getMonth() + 1) : (time.getMonth() + 1);

        const DD = time.getDate() < 10 ? '0' + time.getDate() : time.getDate();

        const hh = time.getHours() < 10 ? '0' + time.getHours() : time.getHours();

        const mm = time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes();

        const ss = time.getSeconds() < 10 ? '0' + time.getSeconds() : time.getSeconds();

        const ms = time.getMilliseconds()

        

        return `${YYYY}-${MM}-${DD}T${hh}:${mm}:${ss}.${ms}`;

    }


    用的时候

    this.setData({

        time: this.getNowTimeParse()

    })

    07-01
    赞同
    回复 1
    • 阿Q
      阿Q
      07-17
      回头看这个问题,npm引入moment 直接调用就可以了
      07-17
      回复
  • 陈
    2018-03-15

    var curDate = new Date();

    var year = curDate.getFullYear();
    var month = curDate.getMonth() + 1;
    var day = curDate.getDate();
    console.log("newSignUpJs " + year + "-" + month + "-" + day);

    你去试一下我这个

    2018-03-15
    赞同
    回复
  • 阿Q
    阿Q
    2018-03-15

    我这样写 var time = Date()

    setData({ time:time})

    出来的格式是 Thu Mar 15 2018 15:22:31 GMT+0800 (中国标准时间)


    2018-03-15
    赞同
    回复
  • 这都申请了
    这都申请了
    2018-03-15

    这个坑...

    2018-03-15
    赞同
    回复
  • Albert Einstein [官]
    Albert Einstein [官]
    2018-03-15

    这是因为 Date 对象的 toJSON( ) 方法得到的不是东八区的字符串。此情况下 setData 时可以使用 Date.now( ),或者 new Date( ).toString( )

    2018-03-15
    赞同
    回复