2000-01-01与当前时间的差值,转换UTC时间
最近使用微信小程序BLE开发项目,在对接硬件协议过程中,关于UTC时间计算的问题
ps: 北京时区是东八区,与UTC时间相差8小时【即UTC+8】
需求:
- 以时间
2000-01-01 00:00:00
为基准值,计算当前时间
与基准值
时间的差秒值 - 把秒值减去
UTC
时间差8小时,转成16进制,发送给设备【关于BLE开发】
当前时间差值转UTC时间计算
这里写在js中,根据个人所需调整
// 获取UTC时间
const calcUTCTime = date => {
// 1.获取当前时间
let currentDate = new Date();
// 2.获取基准值
let flagDate = new Date("2000-01-01 00:00:00");
// 3.获取两个UTC时间的差值秒
let second = (currentDate - flagDate) / 1000;
// 4.获取当前时区差值单位:分钟 即-480分钟, -8小时
let offset = currentDate.getTimezoneOffset()
// 5.相差的值
let secondUTC = parseInt(second) + (offset * 60);
console.log(secondUTC);
return secondUTC;
}
使用
// 引入js
// 调用 个人在实际项目中,当前时间从服务器获取,只要传入当前时间,方法参数改下即可
let tmpTime = utils.calcUTCTime(); // 681015600 【例:2021-07-31 00:00:00】
转为16进制
this.utcTime = tmpTime.toString(16); // 28977930