Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用cordova.globalization.stringToDate从jquery.getJSON修改数组中的日期对象_Javascript_Jquery_Arrays_Cordova_Cordova Plugins - Fatal编程技术网

Javascript 使用cordova.globalization.stringToDate从jquery.getJSON修改数组中的日期对象

Javascript 使用cordova.globalization.stringToDate从jquery.getJSON修改数组中的日期对象,javascript,jquery,arrays,cordova,cordova-plugins,Javascript,Jquery,Arrays,Cordova,Cordova Plugins,我有cordova插件全球化,我希望使用.dateToString来更改JSON对象中的日期时间 incoming JSON = [{"alphaID":"JV033","status":"open","dateadded":1433531166},{"alphaID":"JV032","status":"on hold","dateadded":1433530583}] 这是我的代码 document.addEventListener("deviceready", getJSONList,

我有cordova插件全球化,我希望使用.dateToString来更改JSON对象中的日期时间

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;
}
有两个问题:

  • 一旦我尝试在results函数之外使用date.value,即使是在变量中,它也会变得“未定义”,因此返回dateToDisplay;实际上不起作用。调用
    alert(displayDate(14335311166000))等函数时警报框中的结果为“未定义”,除非该调用来自函数内部(如上文注释所示)
  • 如何用新值替换对象的参数“DateAdd”-目前我根本无法进行任何更改

  • 您已经为“设备就绪”添加了事件侦听器,但在设备实际就绪之前,似乎没有完成获取json(并显示日期)的调用。在设备准备就绪之前,Cordova函数不会运行(不会定义)。 尝试此事件侦听器:

    document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );
    function onDeviceReady() {                
        // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
        getJSONList();
    };
    

    无论如何,这对我来说是可行的,如果我像你那样做事件监听器,调试器会给我“未定义”的“全球化”命令。

    你已经为“设备就绪”添加了事件监听器,但是看起来好像在设备实际就绪之前没有完成获取json(并显示日期)的调用。在设备准备就绪之前,Cordova函数不会运行(不会定义)。 尝试此事件侦听器:

    document.addEventListener( 'deviceready', onDeviceReady.bind( this ), false );
    function onDeviceReady() {                
        // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
        getJSONList();
    };
    

    无论如何,这对我来说是可行的,如果我像你那样做事件侦听器,调试器会给我“未定义”的“全球化”。

    谢谢@quilkin,全球化是可用的,因为我可以从警报(dateToDisplay)中获得警报;从循环每次迭代的dateToDisplay()内部。实际上,我的问题似乎是无法从该函数外部访问date.value。我已经用以下方法解决了对对象属性的赋值:e.forEach(函数(sr,I,rete){var x=e[I].dateadded*1000;e[I].dateadded=x;});这只是访问对象的正确部分的问题谢谢@quilkin,全球化是可用的,因为我可以从警报(dateToDisplay)获得警报;从循环每次迭代的dateToDisplay()内部。实际上,我的问题似乎是无法从该函数外部访问date.value。我已经用以下方法解决了对对象属性的赋值:e.forEach(函数(sr,I,rete){var x=e[I].dateadded*1000;e[I].dateadded=x;});这只是访问对象的正确部分的问题谢谢@quilkin,全球化是可用的,因为我可以从警报(dateToDisplay)获得警报;从循环每次迭代的dateToDisplay()内部。实际上,我的问题似乎是无法从该函数外部访问date.value。我已经用以下方法解决了对对象属性的赋值:e.forEach(函数(sr,I,rete){var x=e[I].dateadded*1000;e[I].dateadded=x;});这只是访问对象的正确部分的问题