[英]Converting mysql input before output. Unix timestamp to PHP DateTime
[英]Converting unix timestamp before sending it by json
首先感谢您抽出宝贵时间对此进行调查。
我将日期作为 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 发送之前将其转换为可读日期? 还是之后呢?
非常感谢你的帮助。
当然,从 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
object 上使用其他方法来获取其他格式。
您使用哪种方法取决于您,但正如 dragon 指出的那样,在客户端执行它通常更好,因为它既减少了传输的数据,又为您提供了更大的灵活性,而无需解析字符串。
在 JavaScript 中使用日期object。
alert(new Date(post.date))
注意:最好以 UNIX 时间戳格式一路传递直到渲染,因为:
Date.now()/1000 - post.date
将为您提供自帖子创建以来的秒数,等等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.