jQuery UI $ .datepicker.formatDate返回NaN NaN Nan

时间:2015-06-11 17:33:37

标签: javascript jquery jquery-ui-datepicker

我有一个mySql表,其中有一个名为posted的列,设置为timestamp类型,默认为current_timestamp。然后我使用php PDO获取它的值(以及其他一些列),以及echo json_encode整个事物。我使用AJAX调用调用我的.php文件,现在我想格式化我收到的日期。

一些谷歌搜索导致我为其$.datepicker函数添加了jQuery-UI,这是一种格式化数据的简便方法。由于我可能会在我的页面上使用其他一些jQuery-UI元素,这似乎是一个合理的解决方案。到目前为止,我还是无法让它工作。

当我console.log相关对象时,我会得到此结果"2015-06-10 13:26:54"

这是我的JS代码(你应该看看var发布):

function makeArticleFeed(response) {
        $('#articles-feed').empty();
        if(response.length > 0) {
            for(var x = 0; x<response.length; x++) {
                console.log(response[x].posted);
                var posted = $.datepicker.formatDate('dd m yy', new Date(response[x].posted)); 
                $("#articles-feed").append(
                    '<div class="article-box"><h1><a href="#">'+response[x].title+
                    '</a></h1><h3><a href="#">' +response[x].author_id+
                    '</a>&nbsp;|&nbsp;'+ posted+
                    '</h3><p>'+response[x].extract+'</p></div>'
                    );
            } //end article feed for loop
        } 
        else {
            $("#articles-feed").append('<h1>Sorry, no article found!</h1>');
        }

1 个答案:

答案 0 :(得分:2)

这是您将字符串Invalid Date传递给formatDate()函数时获得的结果。

换句话说,response[x].posted不是javascripts new Date可以解析的有效日期。

如果它是来自MySQL的时间戳,它通常采用2015-06-11 16:48:24格式,你可以在大多数服务器端语言中获得纪元时间,例如只需将它传递给PHP的strtotime即可,然后你就可以了d有epoch的秒数,javascript接受毫秒数,所以你要在服务器上或在将它传递给new Date之前乘以一千。