2016-09-06 17 views
-3

SQL datetimeをY/m/d G:i:s形式に変換しようとしています。 ...それはフォーマットされていますが、すべてのfrontslashの前に余分なバックスラッシュがあります...私はstr_replaceおよびにstripslashesと働いているそれらの非を試してみたdate()からバックスラッシュを削除する

データ:http://www.zewde.org/instagram/script_new/data.php

コード:

<?php 
define('DB_NAME', 'FollowersCount'); 
define('DB_USER', '******'); 
define('DB_PASSWORD', '******'); 
define('DB_HOST', '*.*.*.*'); 

$connection = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if (!$connection) { 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("FollowersCount", $connection); 

$sth = mysql_query("SELECT Date FROM Count ORDER BY Date"); 
$sthh = mysql_query("SELECT Count FROM Count ORDER BY Date"); 


$sthhh = mysql_query("select a.ID, a.Count,coalesce(a.Count -(select b.Count from Count b where b.ID = a.ID - 1), 5) as diff from Count a ORDER BY Date"); 


$rows = array(); 
while(($r = mysql_fetch_array($sth)) && ($rr = mysql_fetch_array($sthh)) && $rrr = mysql_fetch_array($sthhh)) 
{ 
    $temp_count = intval($rr['Count']); 
    $temp_date1 = $r['Date']; 

    $myFormatForView = date("Y/m/d G:i:s", strtotime($temp_date1)); 
    $final = str_replace("\\", "", $myFormatForView); //Doesn't work, neither does stripslashes... 


    $temp = array($final, $temp_count); 
    $temp_s = implode(", ", $temp); 
    $rows['data'][][] = $temp_s; 
} 


$result = array(); 
array_push($result,$rows); 
$Jz = json_encode($result, JSON_NUMERIC_CHECK); 

echo $Jz; 

mysql_close($connection); 
?> 
+0

ためhereを参照してください。 '\ /'はJSON文字列で '/'をどのように表現するかです。データに '' \ ''はありません。それはエンコーディングだけです。 – Quentin

+0

そしてstackoverflowで、それを編集することはあなたを助けませんが、まだそこにあります。モッズに質問を完全に削除し、パスワードを変更するように頼んでください! – baao

+0

助けてくれてありがとう、tkauslの答えは正しいものです:) – Lofty

答えて

4

これはjson_encodeの障害です。

​​3210:

JSON_UNESCAPED_SLASHES
/をエスケープしないでください。 PHP 5.4.0から利用可能です。

ので

$Jz = json_encode($result, JSON_NUMERIC_CHECK | JSON_UNESCAPED_SLASHES); 

は、これらのバックスラッシュを取り除く必要があります。

+0

神様はあなたを祝福し、ありがとうございます。私はしばらく笑っていた。私はこれを迅速に解決するだろうか分からなかった。乾杯!私はなぜ私がいつもdownvotedになった理由を理解していません.... – Lofty

+0

@Loftyの人々は質問をする人が質問をする前に十分な調査をしていないことを示す傾向があるので、迅速な修正である質問を一般にdownvoteします。 Stack Overflowは、比較的初心者のバグを修正するための最初の呼び出し点としては意図されていません(遅くなってきていますが)。 – Martin

2

クエリで直接フォーマットあなたの日付より良い...

SELECT DATE_FORMAT(Date,'%Y/%m/%d %k:%i:%s') AS niceDate 
FROM Count 
ORDER BY Date 

あなたはJSONを出力しているすべての整形オプション

+0

これはより簡潔な解決策です。 – Martin

関連する問題