如何将json日期视为日期而不是字符串?

时间:2012-11-21 01:15:09

标签: php json

我正在创建一个带有日期的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
}

那么有没有一种方法可以将日期视为字符串?

1 个答案:

答案 0 :(得分:3)

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

  • 物件
  • 阵列
  • 双引号字符串
  • 数字(整数或浮点数)
  • 布尔(truefalse没有引号)
  • null

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

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

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

Difference between Date(dateString) and new Date(dateString)

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