UTC时间,本地时间,moment,时间 详解
moment详解一、背景utc时间和北京时间:utc:世界协调时,以英国格林威治时间为准utc时间和北京时间相差8小时;北京时间:2021-1-1 22:18<==>utc时间:2021-1-1 14:18时间戳timestamp概念:某个utc时间到utc1970-1-1凌晨经过的毫秒数北京时间:1970-1-1 00:08:00时间戳 0utc时间:1970-1-1 00:00:0
·
UTC时间,本地时间,moment,时间 详解
一、背景
-
utc时间和北京时间:
utc:世界协调时,以英国格林威治时间为准
utc时间和北京时间相差8小时;
北京时间:2021-1-1 22:18 <==> utc时间:2021-1-1 14:18 -
时间戳timestamp
概念:某个utc时间到utc1970-1-1凌晨经过的毫秒数
北京时间:1970-1-1 00:08:00 时间戳 0
utc时间:1970-1-1 00:00:00 时间戳 0 -
对服务器的影响:
服务器可能部署到任何国家,服务器内部应使用utc时间或时间戳,包括数据库。 -
对客户端的影响:
客户端要给用户看,应该吧时间戳或utc时间转换为本地时间
二、moment基本使用
// cnpm i moment -S
const moment = require('moment')
moment.locale("zh-cn") //中文
//得到当前时间
console.log('得到当前时间')
console.log(moment().toString())
console.log(moment.utc().toString())
//得到时间戳 是同一个时刻(运行时间会算进去)
console.log('得到时间戳 是同一个时刻(运行时间会算进去)')
console.log(moment().valueOf())
console.log(moment.utc().valueOf())
//根据指定时间格式得到时间 时间格式:YYYY-MM-DD YYYY/MM/DD ...
console.log('根据指定时间格式得到时间 时间格式:YYYY-MM-DD YYYY/MM/DD ...')
const val = "1970-01-01 00:00:00"
console.log(moment(val).toString(), +moment(val))
console.log(moment.utc(val).toString(), +moment.utc(val))
//根据打印结果可知,相同时间,实际代表的日期不同(时间戳不同),所以要规定使用utc时间统一
//使用日期令牌转换
console.log('使用日期令牌转换')
//令牌是一个格式化的字符串,例如: "YYYY-MM-DD HH:mm:ss"
const formats = ["YYYY-MM-DD HH:mm:ss", "YYYY-M-D H:m:s", "x"];
console.log(moment.utc("1970-01-01 00:00:00", formats, true).toString());
console.log(moment.utc("1970-1-1 0:0:0", formats, true).toString());
console.log(moment.utc(0, formats, true).toString());
const invalidMoment = moment.utc(
"Thu Jan 01 1970 00:00:00 GMT+0000",
formats,
true
);
console.log(invalidMoment.isValid()); //判断是否是有效日期: false
console.log(invalidMoment.toString());
console.log(+invalidMoment);
// 显示(发生在客户端)
console.log('显示(发生在客户端)')
let m = moment.utc("2015-1-5 23:00:01", formats, true);
// utc时间转换本地时间
console.log(m.local().format("YYYY年M月D日 HH点mm分ss秒"));
m = moment("2015-1-5 23:00:01", formats, true);
//本地时间转化utc时间传给服务器
const toServer = m.utc().format("YYYY-MM-DD HH:mm:ss");
console.log(toServer);
m = moment("2021-8-31 23:40:01", formats, true);
console.log(m.local().fromNow(),m);
更多推荐
已为社区贡献2条内容
所有评论(0)