[英]Turning JSON into date object
我在這里有要求
$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:001:00 GMT + 0800(馬來半島標准時間)
因為我正在使用ng-repeat
和{{ActivityDate||date:"dd/MM/yyyy"}}
來訪問數據以使其在視圖上顯示,所以無法使用new Date()
手動將其轉換為日期對象。
我試圖將新日期添加到這樣產生的json中,但是它不起作用:
$outp .= '"ActivityDate": new Date("'. $rs["ActivityDate"] . '"),';
正確的做法是什么?
格式化日期服務器端可能是最簡單的方式,即您希望它在客戶端上顯示的方式。
一種選擇:
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));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.