添加天梯排行榜,修复setHour有时差的bug

This commit is contained in:
luying
2020-11-06 17:31:23 +08:00
parent bd93d9dc1c
commit 04ecef03b5
29 changed files with 285 additions and 148 deletions
+15 -5
View File
@@ -19,6 +19,7 @@ const moment = require('moment');
if(str == '&'|| !str) {
return []
} else {
console.log(str)
return str.split(splitForm).map(cur => {
return decodeStrSingle(type,cur);
});
@@ -50,7 +51,7 @@ const moment = require('moment');
result = { gid: parseInt(gid), count: parseInt(count), frequency: parseInt(frequency) };
break;
}
case 'eventSuitLevel': {
case 'suitLevel': {
let [min, max] = arr;
if(isNaN(min) || isNaN(max)) throw new Error('data table format wrong');
result = { min: parseInt(min), max: parseInt(max) };
@@ -180,7 +181,7 @@ export function deltaDays(preTime: Date, proTime: Date): number {
*/
export function shouldRefresh(preTime: Date, now: Date, hour: number, deltaDay = 1): boolean {
let curTime = new Date(now.getTime());
let refeshTime = curTime.setHours(hour, 0, 0, 0);
let refeshTime = setLocalHours(hour, curTime);
if (refeshTime - preTime.getTime() > deltaDay * 24 * 60 * 60 * 1000 && curTime.getTime() >= refeshTime) {
return true;
}
@@ -197,9 +198,8 @@ export function getRefTime(now = new Date(), hour: number, day = 0) {
if (curTime.getHours() < hour) {
curTime.setDate(curTime.getDate() - 1);
}
curTime.setHours(hour, 0, 0, 0);
curTime = new Date(curTime.getTime() + day * 24 * 60 * 60 * 1000);
return curTime;
let today = setLocalHours(hour, curTime);
return new Date(today + day * 24 * 60 * 60 * 1000);
}
export function getRandEelm(source: Array<any> = [], cnt = 1): Array<any> {
@@ -301,4 +301,14 @@ export function calculateNum(ratio: {A: number, B: number}, params: {num: number
console.error(e);
return defaultVal;
}
}
export function setLocalHours(hour: number, curTime = new Date()) {
// curTime: 格林威治时间
let offset = curTime.getTimezoneOffset(); // 格林威治时间和本地时间之间的时差(分)
console.log('offset', offset);
let localTime = new Date(curTime.getTime() - offset * 60 * 1000 + 8 * 60 * 60 * 1000); // 中国时间
localTime.setUTCHours(hour, 0, 0, 0); // 中国的几点
return localTime.getTime() + offset * 60 * 1000 - 8 * 60 * 60 * 1000; // 回到格林威治时间
}