我想知道如何修复我的图形,以便我可以读取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
是每天开始的历元时间。