在JSON脚本中格式化日期时间

时间:2013-12-15 14:01:15

标签: javascript php mysql sql json

这是来自localhost的我的PHP / JSON脚本:

如果您需要下载PHP文件以在您的答案中编辑它们,

http://www16.zippyshare.com/v/6486125/file.html是链接。 (文件中的large-schedule.js中提到了JSON文件的链接。提供了使用说明。)

它部分有效(如文件中回显数据)。

这是代码:

<?
header('Content-type: application/json; charset=utf-8');
header("access-control-allow-origin: *");
$link = mysql_pconnect("localhost", "test", "test") or die("Could not connect");
mysql_select_db("radiostations") or die("Could not select database");

$arr = array();

$rs = mysql_query("SELECT * FROM radio1r1");

while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}
echo '{"success":true,"error":"","data":{"schedule":['.json_encode($arr).'}';
echo isset($_GET['callback'])
 ? "{$_GET['callback']}($json)"
 : $json;

但是,我无法获取字段startminutes和endminutes(存储为DATETIME)的内容在JSON中显示为01/02/2013 00:00:00,以便将它们显示为 01/02 / \ 2013 00:00:00

我所拥有的字段位于上面的SQL文件中。

作为PHP / JSON文件,代码在基本级别工作;我可以很好地进行回调,但有没有更简单的方法来获得成功真正的错误数据显示而无需手动输入?

对于查询字符串回调,我打算这样做,因为它有这4个站与MySQL表的结果不同:

Radio 1

Anytown FM

Big City FM

所以回调看起来像 HTTP:// 127.0.0.1 /phpradiostation/radioschedule-json.php?callback=?&name=Anytown+FM

的http:// 127.0.0.1 /phpradiostation/radioschedule-json.php?callback=?&name=Big+City+FM

我已经到了那里,关于JSON 但是尽管数据库中有数据,但它显示一个空白页面!

PHP信息:我正在使用5.4.1.0,在MAMP,OS X Mavericks上,如果这是相关的。

基本上,我要求的是帮助实际让它在javascript中显示数据。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

据我所知,

我注意到的第一件事是你以错误的方式使用json_encode。你要做的是创建一个多维数组并使用json_encode将特定数组转换为JSON而不是手动执行它。

回答你的问题是肯定的.JSON内容在传递时应该被转义。这就是为什么它显示为01/02/\2013 00:00:00。您需要做的是在客户端解码JSON数据。请参阅以下两个链接。

How to JSON decode array elements in JavaScript?

Parse JSON in JavaScript?

还可以使用jsonlint来验证您的JSON数据。