JSONファイルに依存する日常的な日付ループを構築したいと思います。 ループをグラフに合わせる必要があります。 JSONファイルの日付が必ずしも順不同であるという問題(営業日かどうかによって異なる)私はJSONを完了したいという意味で毎日(営業日であるかどうかにかかわらず)表示したい日付のループ。ループ日付Chart - PHP JSONのフォロワー
例として、例を示します。 JSONファイルは、私がしたい
[ "1982年11月12日"、0.4193]、[ "1982年11月20日"、0.3672]、
ことを私が表示されます場合は 1982 "[、私のグラフ
[ "1982年11月12日"、0.4193]、[ "1982年11月13日"、0.4193]、[ "1982年11月14日"、0.4193]の中にそれを表示します「1982-11-16」、「0.4193」、「1982-11-17」、「0.4193」、「1982-11-18」、「0.4193」、「1982-11-17」、 -19 "、0.4193]、[" 1982-11-20 "、0.3672]
要約すると、日付が連続していない場合は、ループを連続した日付にします。以前の日付と同じ値を与えることに加えて。 TIA
JSONファイル:
[
{ "id":"XXX","dateTimeRanges":{},
"price":[
{"date":"1982-11-12", "value":0.5781},
{"date":"1982-11-19","value":0.5513},
{"date":"1982-11-26","value":0.5179},
{"date":"1982-12-03","value":0.567},
{"date":"1982-12-10","value":0.5223},
{"date":"1982-12-17","value":0.5379},
{"date":"1982-12-24","value":0.5714},
{"date":"1982-12-31","value":0.5335},
{"date":"1983-01-07","value":0.4911},
{"date":"1983-01-14","value":0.5893},
{"date":"1983-01-21","value":0.6674}
]}]
PHPファイル:ここで
$json = file_get_contents($url);
//$json = json_encode($json, true);
$json_a = json_decode($json, true);
//print_r($json_a);
$n = count($json_a[0]['price']);
?>
<script type="text/javascript">
window.profileData = {
"stats": [
<?php
for($i=0;$i<$n;$i++){
$date = trim($json_a[0]['price'][$i]['date']);
$value = trim($json_a[0]['price'][$i]['value']);
$tomorrow = date("Y-m-d", strtotime('+1 day', strtotime($date)));
if($i > 0 and trim($json_a[0]['price'][$i+1]['date']) !== $tomorrow){
?>
["<?php echo $tomorrow;?>", <?php echo $value;?>],
<?php }else{ ?>
["<?php echo $date;?>", <?php echo $value;?>],
<?php }}?>],
"profile": {
"commonName": "<?php echo trim($name);?>",
}
};
</script>
これはjavascriptで行うことができます。これを例を見てください:https://stackoverflow.com/questions/23795522/how-to-enumerate-dates-between-two-dates-in-moment – Esteban
なぜあなたはPHPでそれを行うことができないのですか? @Esteban – AnnaLA
私はあなたがPHPでそれをすることができないと言わなかった、私はPHPでJSコードを生成する代わりに、JSで直接行うことができますと言った。 – Esteban