在使用 nodeJs 时经常发现,无论是在本地,还是在服务器上。即便当前主机是在 东八区 ,使用 new Date() 产生的时间都与北京时间不符合。今天在网络找到一个比较好的第三方写的依赖库, 当然也有其他的方面可以解决。
直接+8 的时间方法
// 第一种
let date = new Date();
date.setHours(date.getHours() + 8);
// 第二种
const csttime = Date.now() + 8 * 60 * 60 * 1000
const cst = new Date(csttime)
const cstHour = cst.getUTCHours()
const cstMin = cst.getUTCMinutes()
```
使用 china-time 依赖库
1、NPM 安装
npm i china-time
2、示例
const chinaTime = require('china-time');
console.log(chinaTime()); // 2018-02-07T04:38:00.000Z
console.log(chinaTime().getTime()); // 1517978280000
console.log(chinaTime('YYYY-MM-DD HH:mm:ss')); // 2018-02-07 13:08:17
console.log(chinaTime('YY/MM/DD HH:mm')); // 18/02/07 13:08
console.log(chinaTime('YYYY MM DD')); // 2018 02 07
参考
https://www.v2ex.com/t/429546
Moment 转换日期时间格式
2021-10-21 记:
今天在维护一个项目发现之前用的网络上复制过来代码执行结果是错误的,而这样的信息是被 copy 的到处都是在没有实践过就发布在网络上。不过,在寻求解答的路上找到一个比较实用的转换工具:Moment,官网:http://momentjs.cn/,上面有详细记载如何使用!
这里就写一个简单的 nodeJs 实例
// 引入依赖
const chinaTime = require('china-time');
const moment = require('moment');
// 简单的一个取过去一周的开始时间和结束时间
let now_Time = chinaTime('YYYY-MM-DD HH:mm:ss');
let now = new Date(now_Time);
var old_Time = moment(now).subtract(1,'weeks').format('YYYY-MM-DD HH:mm:ss');
console.log("现在时间:"+now_Time+"++++++++过去时间"+old_Time);
转载请注明:隨習筆記 » NodeJs 获取北京时间