Я пытаюсь отобразить страницу, если текущая дата или текущая дата, читая URL текущих страниц и ища ключевые слова. Например,
Пример URL: http://www.website.com/blog/2019/october.html
Я хотел бы написать скрипт, который находит месяц («октябрь») и год (2019) из URL страницы и определяетесли это в настоящее время или в прошлом. Если это произойдет в будущем, он перенаправит их на страницу с ошибкой, текущая или прошлая пропустит их. Цель этого - предварительно опубликовать страницы, к которым я не хочу, чтобы пользователь мог иметь доступ до тех пор, пока они не станут текущим содержимым. значение в 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. Затем я собирался сделать то же самое с годом, затем сделать другое утверждение, которое объединит их в дату, затем использовать * 1011. * другой оператор, чтобы определить, что thatDate <= currentDate. Есть ли лучший способ выполнить это? </p>
Этот метод беспорядок, и мне кажется, что я могу упустить что-то, что облегчает достижение этого.
ОБНОВЛЕНИЕ: Спасибо за все ваши ответы. Я закончил свой код, который все еще предпочтителен, так как он не зависит от структуры 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");
}