我有一个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> | '+ posted+
'</h3><p>'+response[x].extract+'</p></div>'
);
} //end article feed for loop
}
else {
$("#articles-feed").append('<h1>Sorry, no article found!</h1>');
}
答案 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
之前乘以一千。