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 相关文章推荐
Dojo 学习笔记入门篇 First Dojo Example
Nov 15 Javascript
Extjs中ComboBox加载并赋初值的实现方法
Mar 22 Javascript
node+express制作爬虫教程
Nov 11 Javascript
Javascript设计模式之装饰者模式详解篇
Jan 17 Javascript
bootstrap基本配置_动力节点Java学院整理
Jul 14 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
Sep 12 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
Vue.js 中的 v-cloak 指令及使用详解
Nov 19 Javascript
nuxt.js中间件实现拦截权限判断的方法
Nov 21 Javascript
详解使用WebPack搭建React开发环境
Aug 06 Javascript
细说webpack6 Babel的使用详解
Sep 26 Javascript
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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
Python实现的简单发送邮件脚本分享
2014/11/07 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
Python可迭代对象操作示例
2019/05/07 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
python中的global关键字的使用方法
2019/08/20 Python
浅析python标准库中的glob
2020/03/13 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
python中封包建立过程实例
2021/02/18 Python
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
PHP如何防止SQL注入
2014/05/03 面试题
空字符串(“”)和null的区别
2012/11/13 面试题
初一家长会邀请函
2014/01/31 职场文书
英语教学随笔感言
2014/02/20 职场文书
党员评议自我评价
2015/03/03 职场文书
会计做账心得体会
2016/01/22 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书