我正在尝试通过 PHP 推送 javascript,并且正在考虑这是否可能......
我在php中定义了一个数组:
$some_date = ["Date.UTC(2008,1,9)", ....];
echo json_encode = ($some_date);
在客户端我打电话
$.getJSON(....){
....
}
我得到的数据为“Date.UTC(2008,1,9)”,如何在不循环整个数组的情况下去掉“?
我正在尝试通过 PHP 推送 javascript,并且正在考虑这是否可能......
我在php中定义了一个数组:
$some_date = ["Date.UTC(2008,1,9)", ....];
echo json_encode = ($some_date);
在客户端我打电话
$.getJSON(....){
....
}
我得到的数据为“Date.UTC(2008,1,9)”,如何在不循环整个数组的情况下去掉“?
我不明白为什么你不应该迭代数组,但你可以加入数组然后使用正则表达式匹配日期,然后再切开它。
这都可以在服务器端完成:
$some_date = ["Date.UTC(2008,1,9)", ....];
$some_date_string = implode("|", $some_date);
$some_date_string = preg_replace_callback(/Date\.UTC\(([0-9]{4}),([0-9]{1,2}),([0-9]{1,2})\)/g, function(matches) {
// matches[0] = year
// matches[1] = month/day - dont know your order (y.m.d/y.d.m)
// matches[2] = month/day
}, $some_date_string);
$some_date = explode("|", $some_date);
和客户端:
$.getJSON('path.php', function(arr) {
var arr = arr.join('|').replace(/Date\.UTC\(([0-9]{4}),([0-9]{1,2}),([0-9]{1,2})\)/g, function(_, a, b, c) {
// a = year
// b = month/day - dont know your order (y.m.d/y.d.m)
// c = month/day
}).split('|');
});
您可以使用 replace 方法删除双引号。
var new_date = some_date.replace(/"/g, '');
如果您想继续使用“json_encode()”,我认为不存在针对您的问题的简单解决方案...
相反,如果您的数组看起来很简单,为什么不自己构建 JSON 对象呢?
$some_date = ["Date.UTC(2008,1,9)", "Date.UTC(2008,1,10)"];
$json_encoded = '['. implode(', ', $some_date) .']';
echo $json_encoded;
简单,干净,漂亮!