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中的对象和数组的应用技巧
Jan 07 Javascript
JQuery实现自定义对话框的代码
Jun 15 Javascript
基于jQuery的公告无限循环滚动实现代码
May 11 Javascript
jquery禁止回车触发表单提交
Dec 12 Javascript
javascript淘宝主图放大镜功能
Oct 20 Javascript
ECMAScript6--解构
Mar 30 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
Apr 26 jQuery
jfinal与bootstrap的登出实战详解
Nov 27 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
vue-for循环嵌套操作示例
Jan 28 Javascript
小程序跳转H5页面的方法步骤
Mar 06 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
Aug 19 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
用文本文件制作留言板提示(下)
2006/10/09 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
javascript类型转换示例
2014/04/29 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
ES6 十大特性简介
2020/12/09 Javascript
Python基础练习之用户登录实现代码分享
2017/11/08 Python
python逆向入门教程
2018/01/15 Python
简单实现python画圆功能
2018/01/25 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
OpenCV 边缘检测
2019/07/10 Python
python实现超市商品销售管理系统
2019/11/22 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
CSS3 选择器 基本选择器介绍
2012/01/21 HTML / CSS
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
大学运动会通讯稿
2014/01/28 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
职业生涯规划书范文
2014/03/10 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
苏州园林导游词
2015/02/03 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
Python关于OS文件目录处理的实例分享
2021/05/23 Python
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js