cakephpの2.6.7
phpは5.6で
カレンダーを表示させて、DB内の合計を表示させたいのですが、
なにかいい方法ありますでしょうか。
プラグインでもいいです。
データは、各日付ごとに表示させたいと思っています。
よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
PHPのdate()とstrtotime()を併用したらどうでしょう。閏年にも対応しています。
それに、カスタマイズも容易です。
(追記:ただし、2038年問題には対応していません。DateTimeクラスを使うのがベターです。)
例えば、次のコードを実行すると、100日前から100日後の日時を表示します。
PHP
1<?php 2// CakePHPでは別途指定するので、いらないかもしれません 3date_default_timezone_set('Asia/Tokyo'); 4 5$from = -100; 6$to = 100; 7for ($i=$from; $i<=$to; $i++) { 8 echo date("Y/m/d H:i:s", strtotime("+$i day")).'<br>'; 9}
また、1ヵ月後の日時を指定したり、ピンポイントで日時を指定することもできます。
PHP
1echo date("Y/m/d H:i:s", strtotime("+1 month")); 2echo date("Y/m/d H:i:s", strtotime("1 January 2016")); 3echo date("Y/m/d H:i:s", strtotime("31 December 2016")); 4 5//実行結果 62016/02/17 11:12:13 72016/01/01 00:00:00 82016/12/31 00:00:00
コード追記
PHP
1[コントローラー] 2 3// sumvalueというバーチャルフィールドを用意 4$this->Num->virtualFields['sumvalue'] = 0; 5 6// modifiedでグルーピングし、valueの合計を取得 7$num = $this->Num->find('all', array( 8 'fields'=> array('Num.id', 'Num.modified', 'sum(Num.value) as Num__sumvalue'), 9 'group' => array('Num.modified') 10)); 11 12// キーをmodified、値をsumvalueとした連想配列$modified_sumvalueを作成 13$results_tmp = Hash::combine($num, '{n}.Num.modified', '{n}.Num.sumvalue'); 14 15// キーをDATETIMEからDATEに変換 16$results = []; 17foreach ($results_tmp as $key => $value) { 18 $results[date('Y-m-d', strtotime($key))] = $value; 19} 20 21// 連想配列をViewで表示できるようにセット 22$this->set(compact('results')); 23 24// 連想配列を確認 25dump($results);
投稿2016/01/17 02:15
編集2016/01/27 09:36総合スコア1409
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/17 09:33
2016/01/18 02:38
2016/01/18 06:29
2016/01/18 06:31
2016/01/18 08:28
2016/01/18 08:40 編集
2016/01/18 08:43
2016/01/18 09:26
2016/01/18 14:05
2016/01/19 03:42
2016/01/19 03:51
2016/01/19 04:42
2016/01/19 14:26
2016/01/19 15:18
2016/01/20 00:37 編集
2016/01/20 02:55
2016/01/20 03:46
2016/01/20 12:24
2016/01/21 00:11 編集
2016/01/20 23:57
2016/01/21 00:08
2016/01/21 11:23
2016/01/21 14:13
2016/01/21 16:43
2016/01/21 23:05