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 相关文章推荐
JavaScript窗口功能指南之在窗口中书写内容
Jul 21 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
Apr 05 Javascript
javascript针对DOM的应用分析(二)
Apr 15 Javascript
jquery 插件学习(一)
Aug 06 Javascript
js猜数字小游戏的简单实现代码
Jul 02 Javascript
js获取会话框prompt的返回值的方法
Jan 10 Javascript
js仿淘宝商品放大预览功能
Mar 15 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
Nov 15 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
Jan 09 jQuery
vue 路由嵌套高亮问题的解决方法
May 17 Javascript
Vue源码解读之Component组件注册的实现
Aug 24 Javascript
小程序跨页面交互的作用与方法详解
Jan 07 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
如何写php程序?
2006/12/08 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
php微信开发之上传临时素材
2016/06/24 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
Python流程控制常用工具详解
2020/02/24 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
农贸市场管理制度
2014/01/31 职场文书
爱心捐书活动总结
2014/07/05 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
陪护人员误工证明
2015/06/24 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python
Redis分布式锁的7种实现
2022/04/01 Redis