PHP图形时间戳不读取PHP时间()作为数字


php graph timestamp not reading php time() as numbers

我想知道如何修复我的图形,以便我可以读取epochtime。下面是代码:

$graphTime = time();    
for($graphTime = 29; $graphTime >= 0; $graphTime--){    
    $timestamp = mktime(0, 0, 0, date("n"), date("j") - $graphTime, date("Y"));     
    $set = date("Y.m.d", $timestamp);
    $result = mysql_query("SELECT COUNT(id) FROM user WHERE timestamp = '$set");    
SQL数据库:

  Timestamp : 2014.05.01

基本上我想把它从读取我的时间戳作为2014.05.01改为读取我的时间戳作为php时间1398967062。我已经尝试在查询$timestamp中设置WHERE语句。我该怎么修理它?

MySQL时间戳字符串是yyyy-mm-dd。所以你的.版本无效。加上你的查询有语法错误:

$result = mysql_query("SELECT COUNT(id) FROM user WHERE timestamp = '$set");    
                                                                         ^--missing '

$set = date("Y-m-d", $timestamp);
$result = mysql_query("...... timestamp = '$set'");
相反,

试试这个:

for($day = 29; $day >= 0; $day--){    
    $graphTime = mktime(0, 0, 0, date("n"), date("j") - $day, date("Y"));     
    $set = date("Y.m.d", $graphTime);
    $result = mysql_query("SELECT COUNT(id) FROM user WHERE timestamp = '$set'");
更新:

根据您的评论,我认为您说数据库在timestamp列中包含YYYY.MM.DD时犯了一个错误。所以我认为你想要的是:

$result = mysql_query("SELECT timestamp - timestamp%86400 AS graphTime, COUNT(*) AS dailyCount
                       FROM user
                       WHERE timestamp >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 29 DAY))
                       GROUP BY graphTime");

你不需要PHP循环,这将返回所有的每日计数。86400是一天中的秒数,因此timestamp - timestamp%86400是每天开始的历元时间。