【发布时间】:2016-06-07 15:28:51
【问题描述】:
我在这里收到请求
$http.get('php/getactivity.php')
.then(
function (response) {
$scope.data.activities = response.data;
},
function (response) {
// error handling
}
);
从数据库中获取数据。在我的 php 中
<?php
include('dbconnect.php');
$result = $conn->query("SELECT * FROM Activities WHERE EventID =1;");
$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "") {
$outp .= ",";
}
$outp .= '{"ActivityDate":"' . $rs["ActivityDate"] . '",';
$outp .= '"StartTime":"' . $rs["StartTime"] . '",';
$outp .= '"EndTime":"' . $rs["EndTime"] . '"}';
}
$outp ='['.$outp.']';
$conn->close();
echo($outp);
?>
从数据库中获取日期字符串。数据示例如下:
1970 年 1 月 1 日星期四 11:11:00 GMT+0800(马来半岛标准时间)
因为我使用ng-repeat 和{{ActivityDate||date:"dd/MM/yyyy"}} 访问数据以使其显示在视图中,所以我无法使用new Date() 手动将其转换为日期对象。
我已尝试将新日期添加到这样生成的 json 中,但它不起作用:
$outp .= '"ActivityDate": new Date("'. $rs["ActivityDate"] . '"),';
正确的做法是什么?
【问题讨论】:
-
问题是“Turning JSON into date object”,json代码在哪里?
-
不要将字符串混合在一起以生成 JSON。 PHP 有
json_encode函数。 -
您正在输出 JSON,但您忘记包含
header("Content-Type: application/json");,因此您的 PHP 将报告它是 HTML 而不是 JSON。 -
您正在手动构建 json。不要那样做。您的任何错误都会将整个 json 块视为无效。构建一个 php 结构,然后在其上执行单个
echo json_encode(...)。 -
您不能将 Date 放入 JSON。 JSON 规范对此一无所知。您应该在客户端将时间戳之类的内容转换为日期。