Может объект JSON, возвращенный PHP, содержит объект даты

var yummy = new List<string>();
while(person.FeelsHappy()) {
    yummy.Add(person.GetNewFavoriteFood());
}
Console.WriteLine("Sweet! I have a list of size {0}.", list.Count);
Console.WriteLine("I didn't even need to know how big to make it " +
    "until I finished making it!");
15
задан Eric 15 September 2009 в 17:41
поделиться

4 ответа

. Вы можете передать дату / время как временную метку UNIX, которая является целым числом, типом данных, изначально поддерживаемым в JSON. DateTime в PHP имеет функцию getTimestamp (), которая выдаст вам это значение.

9
ответ дан 1 December 2019 в 04:18
поделиться

Объект JavaScript Date недействителен JSON и виден в открытом доступе только потому, что многие люди разбирают свой JSON с помощью полнофункциональной функции eval () .

Простая, удобочитаемая альтернатива - отправить дату в виде строки в формате, поддерживаемом Date.parse () .

Ваш JSON:

{
    date: '<?php echo date("r", $myDate); ?>'
}

Ваш JavaScript:

var myDateObj = new Date(Date.parse(myJSON.date));

Источник: http://json.org/ - Список допустимых типов данных JSON см. В поле справа.

13
ответ дан 1 December 2019 в 04:18
поделиться

Краткий ответ: нет

JSON - это просто текст, и все значения являются либо массивами, объектами, числами, строками, логическими значениями или пустыми значениями. «Объект» в этом случае - это просто массив PHP - у него не может быть методов. Вам необходимо вручную преобразовать даты (которые будут строками) в даты.

Формальное определение JSON находится на http://www.json.org/

1
ответ дан 1 December 2019 в 04:18
поделиться

Конечно! Используйте:

var JSONWithDate = {
    "Date": new Date(<?php echo date("Y, ").(date(n) - 1).date(", j") ?>)
};

РЕДАКТИРОВАТЬ: Добавить пример кода.

Вот мой код, и он РАБОТАЕТ.

<html>
<body>
<script>
var J = { "Date": new Date(<?php echo date("Y, ").(date("n") - 1).date(", j") ?>) }
document.write(J["Date"]);
</script>
</body>
</html>

РЕДАКТИРОВАТЬ 2: Сделать его более похожим на JSON.

Вот мой PHP-код.

<html>
<body>
<script>
<?php
function GetJSONDate($FieldName = "Date") {
    return "\"$FieldName\": new Date(".date("Y, ").(date("n") - 1).date(", j").")";
}
?>

function PrintJSONFromPHP(pJSONStr) {
    var aJSONObj = eval('('+pJSONStr+')');
    document.write(aJSONObj["Date"]);
}

var aJSONStr = '{ <?php echo GetJSONDate($FieldName = "Date"); ?> }';
PrintJSONFromPHP(aJSONStr);
</script>
</body>
</html>

Он генерирует следующее HTML-код:

<html>
<body>
<script>
function PrintJSONFromPHP(pJSONStr) {
    var aJSONObj = eval('('+pJSONStr+')');
    document.write(aJSONObj["Date"]);
}

var aJSONStr = '{ "Date": new Date(2009, 8, 15) }';
PrintJSONFromPHP(aJSONStr);
</script>
</body>
</html>

При запуске он показывает:

Tue Sep 15 2009 00:00:00 GMT-0600 (CST) 

Если вы можете передать строку, которая выглядит как литерал объекта JavaScript (без использования переменной внутри него), строка может быть eval для преобразования в объект. Это означает, что вы можете использовать его как JSON.

Надеюсь, это поможет.

-8
ответ дан 1 December 2019 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: