我从我的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
答案 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