mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-02 10:08:02 +08:00
86 lines
4.6 KiB
JavaScript
86 lines
4.6 KiB
JavaScript
// 格式化 类型这个的时间 , 几分钟前 | 几小时前 | 几天前 | 几月前 | 几年前 | 具体的格式不对的时间
|
||
const serverOffset = new Date().getTimezoneOffset() / 60;
|
||
|
||
module.exports = (html, timeZone = -serverOffset) => {
|
||
let math;
|
||
let date = new Date();
|
||
if (/(\d+)分钟前/.exec(html)) {
|
||
math = /(\d+)分钟前/.exec(html);
|
||
date.setMinutes(date.getMinutes() - math[1]);
|
||
date.setSeconds(0);
|
||
} else if (/(\d+)小时前/.exec(html)) {
|
||
math = /(\d+)小时前/.exec(html);
|
||
date.setHours(date.getHours() - math[1]);
|
||
} else if (/(\d+)天前/.exec(html)) {
|
||
math = /(\d+)天前/.exec(html);
|
||
date.setDate(date.getDate() - math[1]);
|
||
} else if (/(\d+)月前/.exec(html)) {
|
||
math = /(\d+)月前/.exec(html);
|
||
date.setMonth(date.getMonth() - math[1]);
|
||
} else if (/(\d+)年前/.exec(html)) {
|
||
math = /(\d+)年前/.exec(html);
|
||
date.setFullYear(date.getFullYear() - math[1]);
|
||
} else if (/今天\s*(\d+):(\d+)/.exec(html)) {
|
||
math = /今天\s*(\d+):(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), math[1], math[2]);
|
||
} else if (/昨天\s*(\d+):(\d+)/.exec(html)) {
|
||
math = /昨天\s*(\d+):(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1, math[1], math[2]);
|
||
} else if (/前天\s*(\d+):(\d+)/.exec(html)) {
|
||
math = /前天\s*(\d+):(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), date.getMonth(), date.getDate() - 2, math[1], math[2]);
|
||
} else if (/(\d+)年(\d+)月(\d+)日(\d+)时/.exec(html)) {
|
||
math = /(\d+)年(\d+)月(\d+)日(\d+)时/.exec(html);
|
||
date = new Date(parseInt(math[1]), parseInt(math[2]) - 1, parseInt(math[3]), parseInt(math[4]));
|
||
} else if (/(\d+)年(\d+)月(\d+)日/.exec(html)) {
|
||
math = /(\d+)年(\d+)月(\d+)日/.exec(html);
|
||
date = new Date(parseInt(math[1]), parseInt(math[2]) - 1, parseInt(math[3]));
|
||
} else if (/(\d+)-(\d+)-(\d+) (\d+):(\d+)/.exec(html)) {
|
||
math = /(\d+)-(\d+)-(\d+) (\d+):(\d+)/.exec(html);
|
||
date = new Date(math[1], parseInt(math[2]) - 1, math[3], math[4], math[5]);
|
||
} else if (/(\d+)-(\d+) (\d+):(\d+)/.exec(html)) {
|
||
math = /(\d+)-(\d+) (\d+):(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2], math[3], math[4]);
|
||
} else if (/(\d+)\/(\d+)\/(\d+)\s*(\d+):(\d+):(\d+)/.exec(html)) {
|
||
math = /(\d+)\/(\d+)\/(\d+)\s*(\d+):(\d+):(\d+)/.exec(html);
|
||
date = new Date(math[1], parseInt(math[2]) - 1, math[3], math[4], math[5], math[6]);
|
||
} else if (/(\d+)\/(\d+)\/(\d+)\s*(\d+):(\d+)/.exec(html)) {
|
||
math = /(\d+)\/(\d+)\/(\d+)\s*(\d+):(\d+)/.exec(html);
|
||
date = new Date(math[1], parseInt(math[2]) - 1, math[3], math[4], math[5]);
|
||
} else if (/(\d+)\/(\d+)\s*(\d+):(\d+)/.exec(html)) {
|
||
math = /(\d+)\/(\d+)\s*(\d+):(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2], math[3], math[4]);
|
||
} else if (/(\d+)月(\d+)日 (\d+):(\d+)/.exec(html)) {
|
||
math = /(\d+)月(\d+)日 (\d+):(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2], math[3], math[4]);
|
||
} else if (/(\d+)月(\d+)日 (\d+)时(\d+)分/.exec(html)) {
|
||
math = /(\d+)月(\d+)日 (\d+)时(\d+)分/.exec(html);
|
||
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2], math[3], math[4]);
|
||
} else if (/(\d+)月(\d+)日/.exec(html)) {
|
||
math = /(\d+)月(\d+)日/.exec(html);
|
||
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2]);
|
||
} else if (/(\d+)月(\d+)号/.exec(html)) {
|
||
math = /(\d+)月(\d+)号/.exec(html);
|
||
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2]);
|
||
} else if (/(\d+)\/(\d+)/.exec(html)) {
|
||
math = /(\d+)\/(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2]);
|
||
} else if (/(\d+)-(\d+)-(\d+)/.exec(html)) {
|
||
math = /(\d+)-(\d+)-(\d+)/.exec(html);
|
||
date = new Date(math[1], parseInt(math[2]) - 1, math[3]);
|
||
} else if (/(\d+)-(\d+)/.exec(html)) {
|
||
math = /(\d+)-(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), parseInt(math[1]) - 1, math[2]);
|
||
} else if (/(\d+):(\d+)/.exec(html)) {
|
||
math = /(\d+):(\d+)/.exec(html);
|
||
date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), math[1], math[2]);
|
||
} else if (/刚刚/.exec(html)) {
|
||
math = /刚刚/.exec(html);
|
||
}
|
||
|
||
if (math) {
|
||
return new Date(date.getTime() - 60 * 60 * 1000 * (timeZone + serverOffset)).toUTCString();
|
||
}
|
||
return html;
|
||
};
|