19 Nov 2014

[PHP]時間を15分刻みに変換する

覚え書きの殴り書き。 時間を15分刻みに変換する。切り上げ、切り捨てありです。
/*
 * dateBy15Minutes
 * @assert ("2001-03-10 17:16:18") == "2001-03-10 17:15:00"
 * @assert ("2001-03-10 17:00:00") == "2001-03-10 17:00:00"
 * @assert ("2001-03-10 17:59:59") == "2001-03-10 17:45:00"
 * @assert ("2001-03-10 17:40:18") == "2001-03-10 17:30:00"
 */

 protected function _dateBy15Minutes($mode = 'ceil',$time = NULL) {
  if (\is_null($time)) {
   $time = time();
  } else {
   $time = \strtotime($time);
  }
  if ($mode == 'ceil') {
   $minute = \sprintf("%02s", \ceil(\date('i') / 15) * 15);
  } else {
   $minute = \sprintf("%02s", \floor(\date('i') / 15) * 15);
  }
  $time_string = \date("Y-m-d H:i:s", \mktime(\date('H'), $minute));
  return $time_string;
 }

12 Nov 2014

[CakePHP2][Composer] プラグインもComposer経由でインストールするときにapp/Plugin フォルダに入れたい。

参考資料
https://github.com/composer/installers
増減するプラグインのために一個一個設置場所を書いていたのですが、うまいことでっちあげたんで、ログとして。
composer.json:
{
    "name": "app",
    "config": {
        "vendor-dir": "Vendor/"
    },
    "extra": {
        "installer-paths": {
            "app/Plugin/{$name}/": ["type:cakephp-plugin"]
        }
    },
    "require": {
        "php": ">=5.3",
        "cakephp/cakephp": "~2",
        "composer/installers": "~1",
        "cakephp/debug_kit": "~2",
        "cakephp/localized": "~2"
   }
}