Php 如何从JSON获取日期(Ymd His),格式为/date()/

Php 如何从JSON获取日期(Ymd His),格式为/date()/,php,json,date,Php,Json,Date,我正在从远程服务器调用一个函数,该函数以XML格式输出我。通过使用PHP对其进行处理并使用JSON(JSON_decode)对其进行解码,我得到以下输出: 打印($data)给出 stdClass对象([CreatedDate]=>/Date(1360641338000-0600)/[DateOfBirth]=>/Date(1360558800000-0600)/) 如何以Y-m-d H:I:s格式获取CreatedDate 谢谢 JSON没有特定的日期数据类型。您正在使用的API似乎正在返回一

我正在从远程服务器调用一个函数,该函数以XML格式输出我。通过使用PHP对其进行处理并使用JSON(JSON_decode)对其进行解码,我得到以下输出:

打印($data)给出

stdClass对象([CreatedDate]=>/Date(1360641338000-0600)/[DateOfBirth]=>/Date(1360558800000-0600)/)

如何以
Y-m-d H:I:s
格式获取
CreatedDate


谢谢

JSON没有特定的日期数据类型。您正在使用的API似乎正在返回一个字符串,它希望您在JavaScript中
eval


您需要处理字符串以删除
日期(
部分,然后在
-
上拆分(也可能在
+
上拆分)并从另一部分中减去(或添加)。然后可以使用标准。

JSON没有特定的日期数据类型。您正在使用的API似乎正在返回一个字符串,它希望您在JavaScript中
eval


您需要处理字符串以删除
日期(
部分,然后在
-
上拆分(也可能在
+
上拆分)并从另一部分中减去(或添加)。然后您可以使用标准。

通过参考Rikesh在评论中指出的另一个SO问题的解决方案,解决了这个问题。修改一下以符合我的要求。我回答这个问题只是为了帮助一些沮丧的灵魂在这里找到解决办法

$startDate = $data->CreatedDate;
preg_match( '/([\d]{10})/', $startDate, $matches );

$sd = date( 'Y-m-d H:i:s', $matches[0] );
$startDate = date('Y-m-d H:i:s', strtotime($sd) - 3600 * 6); //adding 6 hours to match server's time

通过引用Rikesh在评论中指出的另一个SO问题的解决方案,问题得以解决。修改一下以符合我的要求。我回答这个问题只是为了帮助一些沮丧的灵魂在这里找到解决办法

$startDate = $data->CreatedDate;
preg_match( '/([\d]{10})/', $startDate, $matches );

$sd = date( 'Y-m-d H:i:s', $matches[0] );
$startDate = date('Y-m-d H:i:s', strtotime($sd) - 3600 * 6); //adding 6 hours to match server's time

检查这个为什么要将xml处理为json?@PLB别问这个问题。我知道我本可以使用SimpleXML,但现在我的处境是无法改变的:(@MagenTools:混合使用JSON和XML是一个非常糟糕的主意,但是由于您已经引入了这个问题,并且无法解决这个问题,所以您将遇到困难(取决于您需要处理什么)。此特定格式将要求您单独解析它(此格式没有内置的干净支持)。您可以提取括号中的第一个数字,并将其视为Unix时间戳(以毫秒为单位),然后提取第二个数字,并将其视为时区偏移量(
+/-HHMM
)。使用偏移量设置时区,并将毫秒更改为秒-其余的都很简单。@Tadeck同意。这就是为什么我花了很多时间才在这里问这个问题!检查这个为什么要将xml处理为json?@PLB不要问这个问题。我知道我可以使用SimpleXML,但现在我处于无法更改的位置:(@MagenTools:JSON和XML的混合是一个非常糟糕的主意,但是由于您已经引入了这个问题,并且无法解决这个问题,因此您会遇到不好的时候(取决于您需要处理什么)。此特定格式将要求您单独解析它(此格式没有内置的干净支持)。您可以提取括号中的第一个数字,并将其视为Unix时间戳(以毫秒为单位),然后提取第二个数字,并将其视为时区偏移量(
+/-HHMM
)。使用偏移量设置时区,并将毫秒更改为秒-其余的都很简单。@Tadeck同意。这就是为什么我花了很多时间来摆脱它之后才在这里问它的原因!