jQuery UI $.datepicker.formatDate returns NaN NaN 输入

jQuery UI $.datepicker.formatDate returns NaN NaN Nan

我有一个 mySql table,其中有一个名为 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>');
        }

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

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

如果它是来自 MySQL 的时间戳,它通常采用 2015-06-11 16:48:24 格式并且您可以在大多数服务器端语言中获得纪元时间,例如将其传递给 PHP's strtotime 会工作,然后你从纪元开始有秒数,而 javascript 接受毫秒,所以你可以在服务器上或在将它传递给 new Date 之前乘以一千。