【发布时间】:2015-02-14 03:47:51
【问题描述】:
我正在尝试构建一个页面(模板)来显示我的博客的“写作行为”。为了显示我在一天中发布最多的时间,我需要计算“一天中的平均发布时间(小时)”,这样我就可以知道“嗯,我通常在早上发布博客......”
我想到的第一个想法是将所有“时间(小时)”加在一起,然后将它们除以“帖子总数”,然后转换为 24 小时格式显示,但似乎我的代码不起作用。
我写的核心代码是这样的:
<?php
$alltimes=$wpdb->get_var($wpdb->prepare("SELECT sum(post_date) FROM $wpdb->posts WHERE post_type = 'post'", $alltimes));
echo '<p>Total post count '.$published_posts.'</p>';
$count_posts = wp_count_posts(); $published_posts = $count_posts->publish;
$averagetime= $alltimes / $published_posts;
echo '<p>Average Time count is '.$averagetime.'</p>';
echo'<p>Average time is '.date('Y-m-d h:i:s',$averagetime).'</p>';
?>
我的错误是年、月、日、时、秒..全部加起来为“$alltimes”,所以当我划分时它会变成一场灾难。
如果我能得到“post_date”中的“小时”但不是整个“post_date”就可以完成这项工作,但怎么做?
感谢您的宝贵时间。
【问题讨论】:
-
如果要让它工作,代码的另一个问题是它返回的数字不是您正在寻找的数字。尽管您得到的是平均值,但最终得到的是当您要查找的数字是模式时的平均值(如@Cyclone 的答案所示)。