2011-08-29 233 views
2

我有一個從我的mysql數據庫中以YYYY-MM-DD的形式取出的日期。PHP - 將日期轉換爲UTC日期

現在我有一些javascript,需要這樣的日期:

data: [ 
      [Date.UTC(2010, 0, 1), 29.9], 
      [Date.UTC(2010, 2, 1), 71.5], 
      [Date.UTC(2010, 3, 1), 106.4] 
     ] 

所以我想我能做到以下幾點:

while($row = mysql_fetch_array($sql)){ 
     $thedate = explode('-', $row['date']); //$row['date'] = YYYY-MM-DD  
     $str .= '[Date.UTC(' . $thedate[0].','.$thedate[1].','.$thedate[2].'), '.$row['answer'].'],'; 
     $i++; 
    } 

,然後簡單地使用捕捉這在瀏覽器端AJAX請求變量data,給出:

data: [data] 

當告警數據的內容,我注意到我得到類似如下的第22名& 8月23日:

[Date.UTC(2011, 08, 22), 55], [Date.UTC(2011, 08, 23), 65] 

當我需要的是

[Date.UTC(2011, 7, 22), 55], [Date.UTC(2011, 7, 22), 65] 

誰能告訴我如何轉換轉換日期從數據庫關係拉成正確的格式....

YYYY

+1

是avaliable你問如何從$ row [1]減去1? – Gordon

回答

0

這是什麼格式?無論如何,使用DateTime::createFromFormat解析日期,之後,你可以無論如何格式化它,你喜歡。

例子:

while($row = mysql_fetch_array($sql)){ 
    $Date = DateTime::createFromFormat('Y-m-d', $row['date']); 
    $str .= '[Date.UTC(' . $Date->format('Y') . ', '; 
    $str .= $Date->format('n') - 1 . ', '; 
    $str .= $Date->format('j') . '), ' . $row['answer'] . '],'; 
} 

順便問一下,看看json_encodehttp://php.net/manual/en/function.json-encode.php

0
while($row = mysql_fetch_array($sql)){ 
    $timestamp = strtotime($row['date']); 
    $str .= '[Date.UTC(' . date('Y', $timestamp). ', '; 
    $str .= date('n', $timestamp) - 1 . ', '; 
    $str .= date('j', $timestamp) . '), ' . $row['answer'] . '],'; 
} 

有關日期時間 - 這是一個偉大的階級,但只針對份重> = 5.2