Php 将诸如new Date(1358467200000)之类的字符串替换为有效日期

Php 将诸如new Date(1358467200000)之类的字符串替换为有效日期,php,regex,json,Php,Regex,Json,我正在使用PHP制作json文件的jsonp版本,我注意到作者在json文件中添加了如下内容,而不是有效日期: "StartPublish" : new Date(1356652800000) 我需要使用PHP将所有出现的新日期(时间戳)替换为表示为有效日期格式的时间戳,如Fri Dec 28 2012 01:00:00 GMT+0100(CET) 非常感谢 我正在制作json文件的jsonp版本 那你就没有任何问题了。您当前使用的格式可能不是有效的JSON,但将其包装到回调函数中将创建一个有

我正在使用PHP制作json文件的jsonp版本,我注意到作者在json文件中添加了如下内容,而不是有效日期:

"StartPublish" : new Date(1356652800000)
我需要使用PHP将所有出现的
新日期(时间戳)
替换为表示为有效日期格式的时间戳,如
Fri Dec 28 2012 01:00:00 GMT+0100(CET)

非常感谢

我正在制作json文件的jsonp版本

那你就没有任何问题了。您当前使用的格式可能不是有效的JSON,但将其包装到回调函数中将创建一个有效的JSONP脚本,其中包含对象文本和
Date
调用-无需转换。只是

echo $_GET["callback"] . "($nearlyJSON);";

现在不要谈论JSON内容。尝试
preg\u replace\u回调

$jsonPost = preg_replace_callback('/:\s*new\s+Date\(([0-9]+)\)/', function($match) {
    return ': "'. date('r', $match[1] / 1000). '"';
}, $jsonPre);

日期可以根据

进行格式化。使用JS应该更容易,JS可以自然地
eval
uate对象文本和
new date
表达式。任何JSON解析器都会拒绝该语法。您真的想要时区相关的日期字符串吗?为什么不直接转换成整数呢?当然,您可以只输出时间戳。JS很乐意接受(正如您已经得到的代码所示)时间戳是常规日期。如果是日期,您需要的是表示。为什么不让JS来做呢?
 echo  date("d/m/Y h:i:s",strtotime($strtime));