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
Nov 26 Javascript
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
Mar 05 Javascript
动态加载js的方法汇总
Feb 13 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
使用node+vue.js实现SPA应用
Jan 28 Javascript
bootstrap组件之导航组件使用方法
Jan 19 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
vue中动态绑定表单元素的属性方法
Feb 23 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
Bootbox将后台JSON数据填充Form表单的实例代码
Sep 10 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
Sep 14 Javascript
JS绘图Flot如何实现动态可刷新曲线图
Oct 16 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
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
JavaScript 数组的 uniq 方法
2008/01/23 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
javascript求日期差的方法
2016/03/02 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
python复制文件代码实现
2013/12/23 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
python如何实现内容写在图片上
2018/03/23 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
尽职尽责村干部自我鉴定
2014/01/23 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
厂区绿化方案
2014/05/08 职场文书
幼儿园教师考核评语
2014/12/31 职场文书