2015-12-06 3 views
3

Я пытаюсь сохранить текущее время и дату в таблице. В настоящее время при загрузке страницы мой код меняет дату, чтобы отразить текущее время.Как сохранить несколько добавочных дат в localStorage?

Мой код выглядит следующим образом:

function currentDate() { 
    var d = new Date(); 
    return d.toString(); 
} 
window.onload = function() { 
    localStorage.setItem("date", currentDate()); 
    $('#current-location').prepend('<tr<td>'+localStorage.getItem("date")+'</td>'); 
} 

Я попытался console.log(localStorage), так что я знаю, что одна дата сохраняются там. Тем не менее, я хочу сохранить дату, когда страница перезагружается (например, загружать страницу во второй раз и появляются две даты и т. Д.) Нужен ли мне массив? Если да, как бы добавить содержимое массива в таблицу?

+0

Каждый раз, когда вы загружаете страницу, переменные js будут сброшены. Вам нужно либо сохранить его в переменной сеанса, либо в файлах cookie. При загрузке страницы добавьте дату в файлы cookie. Показывая его, извлеките его из файлов cookie. – hardcoder

ответ

1

Да, вы можете использовать массив для этого, и просто держать толкая даты в массив, как этот

function currentDate() { 
    var d = new Date(); 
    return d.toString(); 
} 

var arr = JSON.parse(localStorage.getItem("date") || "[]"); 

arr.push(currentDate()) 

localStorage.setItem("date", JSON.stringify(arr)); 

arr.forEach(function(item) { 
    $('#current-location').prepend('<tr><td>' + item + '</td></tr>'); 
}); 

FIDDLE

+0

Спасибо за ваше решение. Единственная проблема заключается в том, что он выбрасывает ошибку «Uncaught SyntaxError: Неожиданный токен S» из «S» в «Воскресенье». – zarasta

+0

Действительно? Скрипка не работает для вас? Он отлично работает для меня, и я не уверен, как строка с даты будет бросать эту ошибку в данном коде? – adeneo

+0

Ой, подождите, вы, наверное, не поняли, что ваш местный магазин? Попробуйте изменить ключ из «даты» на другое. – adeneo

0

Итак, я хотел бы добавить объект как JSON и сохранить это стробированная версия в localStorage. В качестве доказательства концепции вы можете использовать что-то вроде этого:

1) Инициализировать объект в LocalStorage:

var listOfDates = { 
    dates: [] 
}; 
localStorage.setItem('myDates', JSON.stringify(listOfDates)); 

В зависимости от ваших потребностей, вы можете поместить это в «если (LocalStorage!. GetItem ('myDates'))»

2) Сделайте функцию, которая считывает хранения, разбирает JSON, добавляет элемент в массив дат, и сохраняет обратно LocalStorage:

addDateRowToTable = function() { 

    var listOfDates = JSON.parse(localStorage.getItem('myDates')); 
    listOfDates.dates.push(currentDate()); 
    localStorage.setItem('myDates', JSON.stringify(listOfDates)); 

    for(var i=0; i< listOfDates.dates.length; i++) { 
    // do whatever you need to 
    } 
} 

I хо Это помогает.

Смежные вопросы