У меня есть сценарий, который скрывает большую часть страницы при первой загрузке веб-страницы. Когда он это сделает, я хочу, чтобы он запустил функцию, которая получает текущую дату, а затем сохраняет ее.

У меня проблемы с этим по нескольким причинам.

Вот код загрузки страницы, где он скрывает страницу, если она не была настроена:

$(document).ready(
    function() {
            if (setup=="true") {
                    $("#show-page").show();
                    loadSetup();
            } else {
                    $("#page-nav").hide();
            }
    });

Вот функция даты:

function getStartDate() {
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth();
        var yyyy = today.getYear();   

    var startDate = dd + (mm * 30) + (yyyy * 360)
//edit
//      return startDate
    $("#start-date").val(startDate);
    localStorage.startDate = $("#start-date").val();
}

Затем мне нужна функция if в первой части страницы загрузки, которая говорит, что если сохраненная дата начала + 30 меньше текущей даты, показать сообщение, которое дает им обновленный URL-адрес (isNewUrlNeeded ()).

Это была моя попытка:

$(document).ready(
function() {
        if (setup=="true") {
                $("#show-page").show();
                loadSetup();
                isNewUrlNeeded();
        } else {
                $("#page-nav").hide();
                getStartDate();
        }
});

Проблема здесь в том, что значение getStartDate не сохраняется, и я не знаю, как его сохранить. Причина, по которой его нужно сохранить, заключается в том, что я могу вызвать его позже в функции isNewUrlNeeded.

Любая помощь будет принята с благодарностью.

Спасибо!

С уважением,

Gary

0
Gary 1 Май 2013 в 13:18

1 ответ

Лучший ответ

Вы можете попробовать это:

function getStartDate() {
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth();
    var yyyy = today.getYear();   

    var startDate = dd + (mm * 30) + (yyyy * 360)
    $("#show-page").data("start-date", startDate);
}

Чтобы получить эту дату, вы можете сделать следующее:

var startDate = $("#show-page").data("start-date");
0
Pavel 1 Май 2013 в 13:37
Похоже, что результат не сохраняется, firebug показывает его как undefined
 – 
Gary
1 Май 2013 в 14:16
Вы уверены? Я имею в виду, что это стандартный jquery API, вы уверены, что ваш элемент # show-page существует в dom?
 – 
Pavel
1 Май 2013 в 14:55
Я не уверен, почему вы используете для этого page-show, разве нет возможности локально сохранить это значение?
 – 
Gary
1 Май 2013 в 15:10
Потому что его нужно вызвать снова на более позднем этапе
 – 
Gary
1 Май 2013 в 15:11
Если вы используете HTML5, вы можете использовать localstorage api для этой цели, если нет, вы можете определить глобальную переменную для хранения ваших данных.
 – 
Pavel
1 Май 2013 в 15:16