0

我正在创建一个带有日期的 json 数组。

$result[] = array('startDate' => date("D M j G:i:s T Y"),
                            'endDate' => date("D M j G:i:s T Y"),
                            'title' => $event->title,
                            'description'=>$event->summary,
                            'priority'=>2);

我得到的结果是:

 {
startDate: "Wed Nov 21 0:55:44 UTC 2012",
endDate: "Wed Nov 21 0:55:44 UTC 2012",
title: "title",
description: "desc",
priority: 2
}

但我不希望日期被引用为字符串,我需要的是:

 {
startDate: Wed Nov 21 0:55:44 UTC 2012,
endDate: Wed Nov 21 0:55:44 UTC 2012,
title: "title",
description: "desc",
priority: 2
}

那么有没有办法不将日期视为字符串?

4

1 回答 1

3

JSON 中没有 DATE 值。JSON 中唯一允许的“值”结构是:

  • 对象
  • 数组
  • 双引号字符串
  • 数字(整数或浮点数)
  • 布尔值(truefalse不带引号)
  • null

所以你要求的不是 JSON 格式。您需要构建自己的类似 JSON 的序列化程序,或者在json_encode执行后修改字符串以删除双引号。

或者,您可以保留 JSON 原样,并使用 javascript 将字符串解析为 javascriptDate对象,这似乎是该库的预期输入。

请参阅这篇文章,了解如何在 javascript 中将字符串解析为 Date 对象。

Date(dateString) 和 new Date(dateString) 之间的区别

注意:您可能需要更改日期格式,因为您所拥有的不是通常接受的 javascriptdateString格式之一。

于 2012-11-21T01:31:10.203 回答