PHP - 将日期转换为UTC日期

时间:2011-08-29 18:25:44

标签: php javascript date utc

我从我的mysql数据库中以YYYY-MM-DD的形式提取了一个日期。

现在我有一些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++;
    }

然后在变量data中使用AJAX请求在浏览器端捕获它,并给出:

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]

有人可以告诉我如何将从db关系中提取的日期转换为正确的格式....

YYYY

2 个答案:

答案 0 :(得分: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_encode http://php.net/manual/en/function.json-encode.php

答案 1 :(得分: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'] . '],';
}

关于DateTime - 这是一个很棒的类,但仅适用于php> = 5.2