2013-06-05 67 views
0

我試圖通過PHP推動JavaScript和在想,如果這甚至有可能....PHP JavaScript的轉換

我定義PHP中的數組:在客戶端我叫

$some_date = ["Date.UTC(2008,1,9)", ....]; 

echo json_encode = ($some_date); 

$.getJSON(....){ 
.... 
} 

我得到的數據爲「Date.UTC(2008,1,9)」 我怎樣才能去除出「不通過整個陣列循環?

+1

'echo json_encode =($ some_date)'?那應該做什麼? – elclanrs

+2

請你清楚一點。你想從json字符串中提取什麼數據? – BIOS

+0

我的意思是回聲json_encode($ some_date)假設以JSON格式對數組進行編碼,以便我可以使用客戶端的json對象來提取單個對象以插入圖表庫 – codeBarer

回答

0

我不認爲你的問題的簡單解決方案存在,如果你想用「繼續json_encode()「...

相反,如果你的數組看起來很簡單,爲什麼不自己構建JSON對象呢?

$some_date = ["Date.UTC(2008,1,9)", "Date.UTC(2008,1,10)"]; 
$json_encoded = '['. implode(', ', $some_date) .']'; 
echo $json_encoded; 

簡單,乾淨,漂亮!

0

您可以使用replace方法刪除雙引號。

var new_date = some_date.replace(/"/g, ''); 
1

我看不出爲什麼你不應該遍歷數組,但你可以加入數組,然後使用正則表達式匹配的日期,然後再切開它。

這都可以做服務器端:

$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('|'); 
});