2011-08-29 236 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