我正在尝试为我的学校制作一个显示当天日程安排的应用程序/脚本。问题是我的学校以 8 天为周期运行,这使事情变得复杂。我有一个名为cycleDay的变量,但是我将如何每天只更新一次,而不是更多?如果您有其他方法可以考虑这样做,请告诉我。
谢谢!
我正在尝试为我的学校制作一个显示当天日程安排的应用程序/脚本。问题是我的学校以 8 天为周期运行,这使事情变得复杂。我有一个名为cycleDay的变量,但是我将如何每天只更新一次,而不是更多?如果您有其他方法可以考虑这样做,请告诉我。
谢谢!
private Date lastUpdate = now()-1;
private myDailyChahgedValue;
Integer getMyDailyChangedValue() {
if (lastUpdate <> now()) {
myDailyChahgedValue ++;
}
return value;
}
请注意,这是一个显示主要思想的代码草稿
例如,您可以使用对象的getTime()
函数Date
,它返回 1970 年 1 月 1 日之后的当前时间(以毫秒为单位)(来源:http ://www.w3schools.com/jsref/jsref_gettime.asp ),并保存该值(例如中var lastUpdateTime
)。然后定期检查当前时间与保存的时间之间的差异是否超过一天。如果是这样,请更新cycleDay,并更新lastUpdateTime
到您更新的时间。
例如,初始化:
var lastUpdateTime = new Date().getTime();
代码中的其他地方:
var currentTime = new Date().getTime();
if(currentTime - lastUpdateTime >= 24*60*60*1000) // number of milliseconds in a day
{
// update cycleDay
lastUpdateTime = currentTime;
// ...
}
使用Date
和document.cookies
更新您的变量。我还使用了两种实用方法来操作document.cookies
var today = parseInt(new Date().getTime()/(1000*3600*24))
var cookies = getCookies();
if(cookies["last_updated"] && cookies["last_updated"]<today)
{
/* update variable */
setCookie("last_updated", today, 1);
}
/* utility methods starts, adding utility methods to simplify setting and getting cookies */
function setCookie(name, value, daysToLive) {
var cookie = name + "=" + encodeURIComponent(value);
if (typeof daysToLive === "number")
cookie += "; max-age=" + (daysToLive*60*60*24);
document.cookie = cookie;
}
function getCookies() {
var cookies = {}; // The object we will return
var all = document.cookie; // Get all cookies in one big string
if (all === "") // If the property is the empty string
return cookies; // return an empty object
var list = all.split("; "); // Split into individual name=value pairs
for(var i = 0; i < list.length; i++) { // For each cookie
var cookie = list[i];
var p = cookie.indexOf("="); // Find the first = sign
var name = cookie.substring(0,p); // Get cookie name
var value = cookie.substring(p+1); // Get cookie value
value = decodeURIComponent(value); // Decode the value
cookies[name] = value; // Store name and value in object
}
return cookies;
}
/* utility methods ends */