我从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]
有人能告诉我如何将从数据库关系中提取的日期转换为正确的格式吗。。。。
YYYY
那是哪种格式?无论如何,使用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
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-这是一个很棒的类,但仅适用于pphp>=5.2