Node.js中sequelize时区的配置方法
基本概念
我们先来介绍一些可能当年在地理课上学习过的基本概念。
说起来,时间真是一个神奇的东西。以前人们通过观察太阳的位置来决定时间(比如:使用日晷),这就使得不同经纬度的地区时间是不一样的。后来人们进一步规定以子午线为中心,向东西两侧延伸,每 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:链接的所有数据库(读和写)都要设置合适的时区,否则会出现时间写入不一致的情况
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
Node.JS使用Sequelize操作MySQL的示例代码
Node.JS提供了操作数据库的基础接口,我们可以通过mysql模块的query方法进行操作,但是需要编写SQL语句,对于SQL语句并不精通的人来说有一定的难度,而且在代码中保留SQL语句也有一定的危险性.为了方便进行数据库操作,ORM框架应运而生,Sequelize正是这样的模块. 安装Sequelize 首先,使用cd命令将终端控制台定位到项目的根目录,然后使用npm安装: npm install sequelize --save 安装mysql2 由于sequelize依赖于mysql2所
-
Node.js Sequelize如何实现数据库的读写分离
一.前言 在构建高并发的Web应用时,除了应用层要采取负载均衡方案外,数据库也要支持高可用和高并发性.使用较多的数据库优化方案是:通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力. 1. replication选项与读写分离 Sequelize 支持读/写分离,要实现读/写分离可以分别为读和写各创建一个Sequelize实例,更方便的使用方式是在创建实例时,通过replication选项分别指定读/写数据库. 要在Seq
-
node.js Sequelize实现单实例字段或批量自增、自减
一.单实例自增.自减 在Sequelize中,一个实例(Instance)表示数据库中的一行记录.Instance有两种:由Model.build()创建的非持久化实例,和由Model.create()等方法创建的持久化实例.无论是持久化还是非持久化实例,都会有increment() .decrement()两人上方法,分别用于字段值的自增和自减两种操作. instance.increment(fields, [options]) - 字段值自增 instance.decrement(field
-
Node.js中sequelize时区的配置方法
基本概念 我们先来介绍一些可能当年在地理课上学习过的基本概念. 说起来,时间真是一个神奇的东西.以前人们通过观察太阳的位置来决定时间(比如:使用日晷),这就使得不同经纬度的地区时间是不一样的.后来人们进一步规定以子午线为中心,向东西两侧延伸,每 15 度划分一个时区,刚好是 24 个时区.然后因为一天有 24 小时,地球自转一圈是 360 度,360 度 / 24 小时 = 15 度/小时,所以每差一个时区,时间就差一个小时. 最开始的标准时间(子午线中心处的时间)是英国伦敦的皇家格林威治天文台
-
在 Node.js 中使用原生 ES 模块方法解析
从版本 8.5.0 开始,Node.js 开始支持原生 ES 模块,可以通过命令行选项打开该功能.新功能很大程度上得归功于 Bradley Farias. 1.演示 这个示例的代码目录结构如下: esm-demo/ lib.mjs main.mjs lib.mjs: export function add(x, y) { return x + y; } main.mjs: import {add} from './lib.mjs'; console.log('Result: '+add(2, 3
-
Node.js模块全局安装路径配置方法
下载安装NodeJS后,在自己选择的路径下会有如下的文件: 默认情况下NodeJS安装会同时安装npm(模块管理器:用于管理用户require的模块,有全局和本地两种). 注: 全局:执行npm install <模块的名字> -g 就会将模块装在全局路径下,当用户在程序中require(<模块的名字>)的时候不用考虑模块在哪,如果不修改全局路径,用户下载的模块会默认在C:\Users\Administrator\AppData\Roaming\npm这个路径下. 局部:执行npm
-
Node.js中npx命令的使用方法及场景分析
npx使用教程 今晚在学习Vue-Cli时, 由于突发奇想想试试最新的@4.x.x版本, 但是本地全局安装的脚手架版本是@2.x.x的, 因为不想污染全局于是就想到用npx命令, 一路上踩坑不断, 为了以后能够更好的使用npx并区分其跟npm的指令, 就有了本篇笔记 npm 是从5.2版开始, 增加(自带)了 npx 命令. 如果发现没安装请手动安装: npm i -g npx npm与npx的概念 NPM(Node Package Manager) 是Node.js提供的一个包管理器, 可以使
-
在 Node.js 中使用 async 函数的方法
借助于新版 V8 引擎,Node.js 从 7.6 开始支持 async 函数特性.今年 10 月 31 日,Node.js 8 也开始成为新的长期支持版本,因此你完全可以放心大胆地在你的代码中使用 async 函数了.在这边文章里,我会简要地介绍一下什么是 async 函数,以及它会如何改变我们编写 Node.js 应用的方式. 1 什么是 async 函数 利用 async 函数,你可以把基于 Promise 的异步代码写得就像同步代码一样.一旦你使用 async 关键字来定义了一个函数,那
-
node.js通过Sequelize 连接MySQL的方法
一.通过koa2脚手架构建项目 1.1 安装koa-generator 在终端输入: $ npm install -g koa-generator 1.2 使用koa-generator生成koa2项目 $ koa2 HelloKoa2 成功创建项目后,进入项目目录,并执行npm install命令 $ cd HelloKoa2 $ npm install 1.3 启动项目 在终端输入: $ npm start 项目启动后,默认端口号是3000,在浏览器中运行可以得到下图的效果说明运行成功. 二
-
Node.js 中使用 async 函数的方法
借助于新版 V8 引擎,Node.js 从 7.6 开始支持 async 函数特性.今年 10 月 31 日,Node.js 8 也开始成为新的长期支持版本,因此你完全可以放心大胆地在你的代码中使用 async 函数了.在这边文章里,我会简要地介绍一下什么是 async 函数,以及它会如何改变我们编写 Node.js 应用的方式. 1 什么是 async 函数 利用 async 函数,你可以把基于 Promise 的异步代码写得就像同步代码一样.一旦你使用 async 关键字来定义了一个函数,那
-
在Node.js中实现文件复制的方法和实例
Node.js 本身并没有提供直接复制文件的 API,如果想用 Node.js 复制文件或目录,需要借助其他的 API 来实现.复制单个的文件可以直接用 readFile.writeFile,这样比较简便.如果是复制一个目录下的所有文件,目录下可能还包含了子目录,那么此时就需要用到更高级点的 API 了. 流 流是 Node.js 移动数据的方式,Node.js 中的流是可读/可写的,HTTP 和文件系统模块都有用到流.在文件系统中,使用流来读取文件的时候,对于一个大文件可能并不会一次性读取完,
-
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
在这篇文章中,我们将学习正确使用Node.js调用系统命令的方法,以避免常见的命令行注入漏洞. 我们经常使用的调用命令的方法是最简单的child_process.exec.它有很一个简单的使用模式;通过传入一段字符串命令,并把一个错误或命令处理结果回传至回调函数中. 这里是你通过child_process.exec调用系统命令一个非常典型的例子. 复制代码 代码如下: child_process.exec('ls', function (err, data) { console.log(
-
node.js中使用socket.io的方法
使用socket.io的使用创建一个socket.io服务器即可.但是该服务器依赖于一个已经创建的http服务器. 在http服务器运行之后,使用listen方法为该http服务器附加一个socket.io服务器. 复制代码 代码如下: var sio=require("scoket.io"); var socket=sio.listen(server); socket就是在server基础上创建的一个socket.io服务器. 当客户端与服务器端建立连接时,触发socket.io服务
随机推荐
- 七个绝招应对网上银行盗贼
- Keepalived+HAProxy实现MySQL高可用负载均衡的配置
- 轻量级的Web框架Flask 中模块化应用的实现
- Jquery遍历Json数据的方法
- ASP.NET4 GridView的四种排序样式详解
- C#自定义控件VS用户控件
- php去除字符串换行符示例分享
- yii2中LinkPager增加总页数和总记录数的实例
- PHP类继承 extends使用介绍
- JavaScript省市联动实现代码
- python 网络编程常用代码段
- Android编程实现类似天气预报图文字幕垂直滚动效果的方法
- Android开发中滑动分页功能实例详解
- Android 点击屏幕空白处收起输入法软键盘(手动打开)
- 修改mysql默认字符集的两种方法详细解析
- 浅析PHP原理之变量(Variables inside PHP)
- MySQL 数据库双向镜像、循环镜像(复制)
- juqery 学习之四 筛选过滤
- jQuery实现的多张图无缝滚动效果【测试可用】
- Jquery轮播效果实现过程解析