cakePHP ; 指定日からの日付の計算

★PHP(cakePHP)で指定日からの日付の計算をします

strtotime 関数を使って date オブジェクトに変換します。もし数字の文字列が渡されたら、まず整数型に変換し、 Unix エポック(GMT の1970年1月1日0時0分0秒)からの経過秒として扱います。「20081231」という値を渡した場合、 Unix エポックからの経過病として扱われるため、「Fri, Aug 21st 1970, 06:07」というような望ましくない結果が生成されます。(CakePHPマニュアルより)

【コード例】

$date_a = $user[‘User’][‘birthday’];
$date_b = strtotime($date_a) + (86400*7);
$date_c = date(‘Y-m-d’,$date_b);
echo $date_c;
echo date(‘Y’,$date_b).’年’.date(‘m’,$date_b).’月’.date(‘d’,$date_b).’日’;

・2週間後を1行で書くと
$date_2w = date(‘Y年m月d日’,strtotime($user[‘User’][‘birthday’]) + (86400*7*2));

コード例では、DBのusersテーブル・birthday要素に格納されている誕生日(指定日)の7日後を計算しています。
このような日付計算は簡単すぎる為か情報が少ないです。

cakePHP 1.2.5 ; bake パス設定

★cakePHP 1.2.5 を Windowsで bake するパス設定

・php.exeにパスを通す
C:\xampp\php\

・bake.phpにパスを通す
C:\xampp\htdocs\*InstallFolder\cake\console\

=>consoleディレクトリにてコマンドプロンプトを起動し、cake bake コマンドを入力する
  # cake -app C:\xampp\htdocs\*InstallFolder\app bake


プロジェクトごとにWindows環境変数へパスを通すのは面倒なので、bake実行時のみbake.phpへパスを登録する方法もある。

Windowsで簡単にbake
(1) consoleフォルダをコマンドプロンプトで開く
  (開き方は自分で調べましょう。)
(2) SET PATH=%PATH%;%CD%
  と打ち込む。すると、そのコマンドプロンプトのウィンドウ上だけ、consoleフォルダのパスが追加されます。(%CD%は、カレントディレクトリ、という意味です。)
(3) 単に、PATH(Enter)と入れてみて、実際に登録されたかどうか、確認してみましょう。
(4) CD ../../
で、cakeの親フォルダに戻る
(5) md “プロジェクトファイル名”で、適当なプロジェクト名を作る。
このあたり、エクスプローラでフォルダを作成してもよいと思います。
(6) cd “プロジェクトファイル名”で、そのディレクトリに入る。
(7) あとは、cake bake で始まります。パラメータを駆使すれば、もっといろいろできるでしょう。

by CakePHP のおいしい食べ方