如果今天的日期是当前日期或过去日期,我试图通过读取当前页面 URL 并查找关键字来显示页面。例如,
示例网址:http : //www.website.com/blog/2019/october.html
我想编写一个脚本,从页面的 URL 中找到月份(“十月”)和年份(2019),并确定它是当前的还是过去的。如果是在未来,它会将它们重定向到错误页面,当前或过去将让它们通过。这样做的目的是我正在预发布页面,我不希望用户在它是当前内容之前能够访问这些页面。
我目前正在使用 window.location.href.includes 在 URL 中查找值,然后使用循环与数组进行比较以返回月份和年份数字。到目前为止我的代码:
// Sample URL: http://www.website.com/blog/2019/october.html
var monthName = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
var monthNum = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
for (i = 0; i < monthName.length; i++) {
if (window.location.href.includes(monthName[i]) > 0) {
var pageMonth = (monthNum[i]);
}
else {
}
}
这会给我 10 的结果。然后我打算对年份做同样的事情,然后再做一个将它们组合成一个日期的语句,然后使用另一个语句来确定 thatDate <= currentDate。有没有更好的方法来执行这个?
这种方法一团糟,似乎我可能遗漏了一些使这更容易实现的东西。
更新:感谢您的所有回复。我已经完成了我的代码,这仍然是可取的,因为它不依赖于 URL 的结构,相反,它只会搜索所有内容,以防我需要移动文件或在其他地方进行这项工作。我认为它肯定可以使用一些清理(尤其是两位数的月份部分),但我想在这里发布它。
var d = new Date();
var monthTwoDigit = ("0" + (d.getMonth() + 1)).slice(-2);
var monthName = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
var monthNum = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"];
for (i = 00; i < monthName.length; i++) {
if (window.location.href.includes(monthName[i]) > 0) {
var pageMonth = monthNum[i];
}
else {
}
}
for (i = 2019; i < 3000; i++) {
if (window.location.href.includes(i) > 0) {
var pageYear = (i);
}
else {
}
}
var urlDate = "" + pageYear + pageMonth;
var actualDate = "" + d.getFullYear() + monthTwoDigit;
if (urlDate > actualDate) {
window.location.replace("http://www.website.com/error.html");
}
else {
document.write("SAFE");
}
ibeautiful
小唯快跑啊
米琪卡哇伊
相关分类