Node.js中sequelize时区的配置方法


Posted in Javascript onDecember 10, 2017

基本概念

我们先来介绍一些可能当年在地理课上学习过的基本概念。

说起来,时间真是一个神奇的东西。以前人们通过观察太阳的位置来决定时间(比如:使用日晷),这就使得不同经纬度的地区时间是不一样的。后来人们进一步规定以子午线为中心,向东西两侧延伸,每 15 度划分一个时区,刚好是 24 个时区。然后因为一天有 24 小时,地球自转一圈是 360 度,360 度 / 24 小时 = 15 度/小时,所以每差一个时区,时间就差一个小时。

最开始的标准时间(子午线中心处的时间)是英国伦敦的皇家格林威治天文台的标准时间(因为它刚好在本初子午线经过的地方),这就是我们常说的 GMT(Greenwich Mean Time)。然后其他各个时区根据标准时间确定自己的时间,往东的时区时间晚(表示为 GMT+hh:mm)、往西的时区时间早(表示为 GMT-hh:mm)。比如,中国标准时间是东八区,我们的时间就总是比 GMT 时间晚 8 小时,他们在凌晨 1 点,我们已经是早晨 9 点了。

但是 GMT 其实是根据地球自转、公转计算的(太阳每天经过英国伦敦皇家格林威治天文台的时间为中午 12 点),不是非常准确,于是后面提出了根据原子钟计算的标准时间 UTC(Coordinated Universal Time)。

一般情况下,GMT 和 UTC 可以互换,但是实际上,GMT 是一个时区,而 UTC 是一个时间标准。

下面开始本文的正文:

Node.js sequelize时区配置

sequelize 默认情况下,保存日期时会转换成 +00:00时区,例如

提交数据:

time=2017-07-17 16:52:12

数据库中会保存成

2017-07-17 08:52:12

解决方式:

sequelize时配置时区

timezone: '+08:00'

如:

const sequelize = new Sequelize(config.database, config.username, config.password, {
 host: config.host,
 port: config.port,
 dialect: 'mysql',
 pool: {
 max: 5,
 min: 0,
 idle: 10000
 },
 timezone: '+08:00'
});

PS:链接的所有数据库(读和写)都要设置合适的时区,否则会出现时间写入不一致的情况

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JS遮罩层效果 兼容ie firefox jQuery遮罩层
Jul 26 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
JavaScript基础知识之方法汇总结
Jan 24 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
Jan 26 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
May 17 Javascript
Javascript缓存API
Jun 14 Javascript
JS简单获取及显示当前时间的方法
Aug 03 Javascript
妙用Angularjs实现表格按指定列排序
Jun 23 Javascript
Vue引入jquery实现平滑滚动到指定位置
May 09 jQuery
Vue使用localStorage存储数据的方法
May 27 Javascript
详解ES6实现类的私有变量的几种写法
Feb 10 Javascript
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
node.js多个异步过程中判断执行是否完成的解决方案
Dec 10 #Javascript
关于react中组件通信的几种方式详解
Dec 10 #Javascript
vue项目中v-model父子组件通信的实现详解
Dec 10 #Javascript
Angular项目从新建、打包到nginx部署全过程记录
Dec 09 #Javascript
利用ES6实现单例模式及其应用详解
Dec 09 #Javascript
利用node.js如何创建子进程详解
Dec 09 #Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
Dec 09 #Javascript
You might like
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
python中base64加密解密方法实例分析
2015/05/16 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
Django和Flask框架优缺点对比
2019/10/24 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
django跳转页面传参的实现
2020/09/17 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
会议活动邀请函
2014/01/27 职场文书
网吧消防安全制度
2014/01/28 职场文书
上课迟到检讨书
2014/02/19 职场文书
学校计划生育责任书
2015/05/09 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
Django Paginator分页器的使用示例
2021/06/23 Python
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL