У меня есть Кордова плагиной глобализации, и я хочу использовать .dateToString изменить DateTimes, которые находятся в формате JSON объектовобъектов даты Изменения в массиве из jquery.getJSON с помощью cordova.globalization.stringToDate
incoming JSON = [{"alphaID":"JV033","status":"open","dateadded":1433531166},{"alphaID":"JV032","status":"on hold","dateadded":1433530583}]
так это мой код
document.addEventListener("deviceready", getJSONList, false);
var dateToDisplay = ''
function getJSONList() {
$.getJSON("https://myserver.com/ajax_calls/list_sr_app.asp", function(e) {
e.forEach(function(arrayItem, index, thearray) {
var x = arrayItem.dateadded * 1000; //alert(new Date(x)); this works (un-adjusted dates of course)
//alert(displayDate(x)); this does NOT work - delivers undefined
thearray[index].arrayItem.dateadded = displayDate(x) // the assigment of the return of displayDate(x) does not work either
});
constructJSONList(e); //this function (not here) works
});
} // end of getJSONList()
function displayDate(d) {
navigator.globalization.dateToString(
new Date(d),
function(date) {
dateToDisplay = date.value; /* alert(dateToDisplay); - this alert works*/
},
function() {
dateToDisplay = 'Error getting dateString'
}, {
formatLength: 'short',
selector: 'date and time'
}
);
return dateToDisplay;
}
есть два вопроса:
- Как только я пытаюсь использовать date.value из сторона функции результатов, даже в переменной, становится «неопределенной», поэтому возвращает dateToDisplay; на самом деле не работает. При вызове функции, такой как
alert(displayDate(1433531166000));
, результат в поле предупреждения «неопределен», если только этот вызов не входит в функцию (как указано выше) - Как заменить параметр объекта «dateadded» на новое значение - на данный момент я не могу вносить никаких изменений.
Спасибо @quilkin, глобализация доступна, потому что я могу получить предупреждение от предупреждения (dateToDisplay); изнутри dateToDisplay() для каждой итерации цикла. На самом деле, моя проблема заключается в том, что я не могу получить доступ к date.value из-за пределов этой функции. Я решил задание к свойству объекта с: e.forEach (функция (Sr, I, рете) \t \t \t \t { \t \t \t \t \t вар х = е [I] .dateadded * 1000; \t \t \t \t \t е [I] .dateadded = х; \t \t \t \t}); это был просто вопрос доступа к правым частям объекта – Ultradiv