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的变量值传递给ASP变量
Dec 10 Javascript
使用jQuery动态加载js脚本文件的方法
Apr 03 Javascript
当达到输入长度时表单自动切换焦点
Apr 06 Javascript
jquery map方法使用示例
Apr 23 Javascript
将form表单中的元素转换成对象的方法适用表单提交
May 02 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
BootStrapTable 单选及取值的实现方法
Jan 10 Javascript
canvas实现绘制吃豆鱼效果
Jan 12 Javascript
vue数据控制视图源码解析
Mar 28 Javascript
vue+elementUI实现表格关键字筛选高亮
Oct 26 Javascript
JavaScript之数组扁平化详解
Jun 03 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 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下过滤HTML代码的函数
2007/12/10 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
js实现点赞效果
2020/03/16 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python yield的用法实例分析
2020/03/06 Python
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
安全生产投入制度
2014/01/29 职场文书
打架检讨书300字
2014/02/02 职场文书
企业法人代表任命书
2014/06/06 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
会议通知
2015/04/15 职场文书
欠条格式范本
2015/07/03 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS
vue实现登陆页面开发实践
2022/05/30 Vue.js
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang