首先感谢您花时间研究这个问题。
我将日期作为unix时间戳记存储在我的数据库中,当我使用以下内容获取所有信息时:
while($row = mysql_fetch_assoc($result)) {
$posts[] = $row;
}
/* return the posts in the JSON format */
return json_encode($posts);
当我尝试使用以下内容时,日期仅作为unix时间戳提供:
var postHandler = function(postsJSON) {
$.each(postsJSON,function(i,post) {
alert(post.date);
}
}
有没有办法在通过JSON发送之前将其转换为可读日期?甚至之后呢?
非常感谢你的帮助。
答案 0 :(得分:2)
当然,从PHP方面你可以这样做:
while($row = mysql_fetch_assoc($result)) {
$row['your_date_field'] = date('r', $row['your_date_field']);
$posts[] = $row;
}
(您可以根据需要自定义传递给date()
的格式字符串; 'r'
只是一个简单的默认值。)
从Javascript方面来说,你可以这样做:
new Date(post.date);
当呈现给字符串时将格式化为默认日期格式,或者您可以使用Date
对象上的其他方法来获取其他格式。
你使用哪种方法取决于你,但正如龙指出的那样,做客户端往往更好,因为它既减少了传输的数据又提供了更大的灵活性而无需解析字符串。
答案 1 :(得分:2)
在JavaScript中使用Date对象。
alert(new Date(post.date))
注意:最好以UNIX时间戳格式一直传递它,直到呈现为止,因为:
Date.now()/1000 - post.date
将为您提供自帖子创建以来的秒数,依此类推。