我在这里得到了请求
$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);
?>
从数据库中获取日期字符串。数据的一个例子是这样的:
Thu Jan 01 1970 11:11:00 GMT + 0800(马来半岛标准时间)
因为我使用ng-repeat
和{{ActivityDate||date:"dd/MM/yyyy"}}
来访问数据以使其显示在视图上,所以我无法使用new Date()
手动转换它来执行日期对象。
我已尝试将新日期添加到生成的json中,但它不起作用:
$outp .= '"ActivityDate": new Date("'. $rs["ActivityDate"] . '"),';
这样做的正确方法是什么?
答案 0 :(得分:2)
最简单的格式化日期服务器端,就像您希望它在客户端上显示一样。
一个选项:
date('d/m/Y', strtotime($rs["ActivityDate"]));
以下是一个例子:https://3v4l.org/6Xv03
附注:我建议您更改生成JSON的方式。首先构建一个PHP数组,然后json_encode
。这将避免潜在的JSON格式问题。
类似的东西:
$output = [];
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
$output[] = [
"ActivityDate" => date('d/m/Y', strtotime($rs["ActivityDate"])),
"StartTime" => $rs["StartTime"],
"EndTime" => $rs["EndTime"]
];
}
$conn->close();
echo(json_encode($output));
然后正如一位评论者提到的那样,添加标题以指示您的内容类型会有所帮助:
header("Content-Type: application/json");
echo(json_encode($output));