Я получил запрос здесь
$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);
?>
который получает строку даты из базы данных. Пример данных таков:
Чт 01.01 1970 11:11: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));
d/m/Y
приведет к «01.01.1970». Что бы вы ожидали? Мы не конвертируем его в другой часовой пояс.
json_encode
.