2013-09-04 4 views
0

다음과 같은 결과를 얻으려면 도움이 필요합니다. 많이 시도했지만 성공하지 못했습니다. 날짜 발생 횟수를 세고 배열에 표시하십시오. [Date.UTC (2011,9,23), 1], [Date.UTC (2011,9,24), 2], [Date.UTC (2011,9,25), 5]]입니다.php mysql date.utc 및 발생 횟수를 계산하십시오.

지금까지 배열 형식으로 날짜를 추출 할 수 있었는데, 아래는 내 결과입니다. [[ "03-09-2011"], [ "06-09-2011"], [ "06-09-2011"]]. 다른 행을 추가하여 각 날짜와 날짜의 수를 표시하는 방법 Date.UTC?

내 코드

도와주세요

$mysql_connect = mysql_connect($db_host, $db_user, $db_pword, $db_name); 
$query = "SELECT DATE_FORMAT(`timestamp`,'%d-%m-%Y') as date from mytable"; 
if (!$mysql_connect) die("unable to connect to database: " . mysql_error()); 

@mysql_select_db($db_name) or die("Unable to select database"); 

$result = mysql_query($query); 
$response = array(); 
$stats = array(); 
while($row=mysql_fetch_array($result)) 
{ 
    $date = $row ['date']; 

    $stats[] = array ($date); 

} 

$Response[] = $stats; 

$fp = fopen('results.json', 'w'); 
fwrite($fp, json_encode($Response)); 
fclose($fp); 


//die ("Failed to execute Query: " . mysql_error()); 

mysql_close($mysql_connect); 

답변

0
당신은 날짜가 이미 GROUP BY 절과 함께 데이터베이스에서 계산 얻을 수있는

: 타임 스탬프 날짜 문자열에서

SELECT 
    DATE_FORMAT(`timestamp`,'%d-%m-%Y') as date, 
    COUNT(*) as frequency 
FROM mytable 
GROUP BY DATE_FORMAT(`timestamp`,'%d-%m-%Y') 

변환 (Javascript의 Date.UTC처럼) PHP 나 MySQL에서 할 수 있습니다. UNIX_TIMESTAMP(CAST(timestamp AS DATE))은 데이터베이스에서 바로 날짜에 대한 타임 스탬프를 가져옵니다. PHP http://php.net/manual/en/function.strtotime.php에서

이 이미 검색하는 형식에서 유닉스 타임 스탬프를 가져올 수 있습니다 자세한 제어를 사용 날짜 시간 http://php.net/manual/en/book.datetime.php에 대한 $date_utc = strtotime($row['date']); (strtotime으로 구성 할 수 없습니다 - 그냥 표준 가정을 사용합니다).

$date_time = DateTime::createFromFormat('d-m-Y', $row['date']); 
$date_utc = $date_time->getTimestamp(); 
+0

정말 고마워요! 이 일했다! – user2719881

관련 문제