element表单中时间被转换成格林尼治时区

使用element表格组件时,传进去的时间自动被转换,有什么简单办法转换成北京时间么?

阅读 5.1k
2 个回答

使用element table组件中的formatter属性,传入一个函数,函数中使用moment这个工具库,很方便

Date.prototype.getBJDate = function () {
    //获得当前运行环境时间
    var d = new Date(), 
        currentDate = new Date(), 
        tmpHours = currentDate.getHours();
    //时区
    var time_zone = -d.getTimezoneOffset() / 60;
   //少于0的是西区 西区应该用时区绝对值加京八区 重新设置时间(西区时间比东区时间早 所以加时区间隔)
    if (time_zone < 0) {
        time_zone = Math.abs(time_zone) + 8; currentDate.setHours(tmpHours + time_zone);
    } else {
        //大于0的是东区  东区时间直接跟京八区相减
        time_zone -= 8; currentDate.setHours(tmpHours - time_zone);
    }
    return currentDate;
}

(new Date()).getBJDate();

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题