有没有办法在google chrome扩展中增加一个变量,而不必打开扩展?

mbskvtky  于 2022-12-06  发布在  Go
关注(0)|答案(1)|浏览(144)

我正在为我和我学校的人做一个扩展,为了不谈太多细节,它试图保存你的课程,并提前几个月告诉你你即将到来的时间表。这都是可能的,因为我的学校运行在一个“天”系统。这意味着在“第一天”你可能有数学,科学,英语和体育,而在“第二天”你可能有历史,西班牙语,etc...你明白了。无论如何,为了运行这个扩展,我需要跟踪我所在的给定日期。这只有在有人打开扩展时才有可能,扩展运行脚本来检查是否已经过了一天,如果是,将递增变量。但是,我的问题是有些人可能连续很多天都没有打开扩展,导致我的程序丢失了它的日期,使它无用。所以我需要一种方法让我的程序在后台增加日期,而不必打开扩展。另一种方法是以某种方式计算出用户已经离开了多少天,然后做一些数学运算来找出它应该是哪一天。
如果有人能给我一些帮助,将不胜感激。我已经链接了我的一些代码如下。
当用户第一次登录到我的程序时会发生这种情况,保存他们所在的星期几。

var today = new Date()
    localStorage.setItem('day-of-week', today.getDay())

每次加载扩展时,这个“检查器”都会运行,如果它注意到本地存储的星期几与当前的星期几有任何不同,它将增加学校的“Day”,然后存储新的星期几。(我学校的日系统只会增加到4,所以一旦达到4,它就会返回到1)

function checkDate(prevDate) {
var today = new Date()
if (today.getDay() != prevDate) {
    day = parseInt(day)
    if (day == 4) {
        day = 1
    } else {
        day += 1
    }
    localStorage.setItem('day', day)
    localStorage.setItem('day-of-week', today.getDay())
}}
mwg9r5ms

mwg9r5ms1#

我想用一种不同的方法来解决这个问题。如果你知道学期的第一天是什么时候(或者你的日程表的参考点是什么日期),你可以把今天的日期和那个日期进行比较。一个函数可以像这样:

const scheduleLength = 4
const milsPerDay = 1000 * 60 * 60 * 24
const semesterStart = new Date('September 3, 2022 00:00:00');
function scheduleDay(day){
    var semesterDay = Math.floor( (day - semesterStart )/milsPerDay );
    return semesterDay % scheduleLength
}

这个函数没有考虑周末,因为我不确定你是否需要,但是如果有必要,你可以调整这个函数来考虑周末。如果你确实需要这样做,我个人建议你只重命名semesterStart变量,并引用一周的开始。
为了确保它能正常工作,我编写了一个简单的循环:

for ( let i = 3; i <= 11; i++ ) {
    var test = new Date('September '+i+', 2022 08:00:00')
    console.log( scheduleDay(test), test)
}

我得到了输出

> 0 Sat Sep 03 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 1 Sun Sep 04 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 2 Mon Sep 05 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 3 Tue Sep 06 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 0 Wed Sep 07 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 1 Thu Sep 08 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 2 Fri Sep 09 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 3 Sat Sep 10 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 0 Sun Sep 11 2022 08:00:00 GMT-0400 (Eastern Daylight Time)

相关问题