收藏
回答

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

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




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

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

回答关注问题邀请回答
收藏

5 个回答

  • 黄正梦
    黄正梦
    2019-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()

    })

    2019-07-01
    有用
    回复 1
    • 阿Q
      阿Q
      2019-07-17
      回头看这个问题,npm引入moment 直接调用就可以了
      2019-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
    有用
    回复 1
    • 大河
      大河
      2021-04-28
      你这个就少了个new? 输出来和前面没区别
      2021-04-28
      回复
  • 这都申请了
    这都申请了
    2018-03-15

    这个坑...

    2018-03-15
    有用
    回复
  • HS
    HS
    2018-03-15

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

    2018-03-15
    有用
    回复
登录 后发表内容