Tools\Utility\Time::periodAsSql PHP Method

periodAsSql() public static method

Return SQL snippet for a period (beginning till end).
public static periodAsSql ( string $searchString, string $fieldName, array $options = [] ) : string
$searchString string to parse
$fieldName string (Model.field)
$options array (see TimeLib::period)
return string query SQL Query
    public static function periodAsSql($searchString, $fieldName, array $options = [])
    {
        $period = static::period($searchString, $options);
        return static::daysAsSql($period[0], $period[1], $fieldName);
    }

Usage Example

コード例 #1
0
ファイル: TimeTest.php プロジェクト: alescx/cakephp-tools
 /**
  * TimeTest::testPeriodAsSql()
  *
  * @return void
  */
 public function testPeriodAsSql()
 {
     //$this->out($this->_header(__FUNCTION__), true);
     $values = [[__d('tools', 'Today'), "(Model.field >= '" . date(FORMAT_DB_DATE) . " 00:00:00') AND (Model.field <= '" . date(FORMAT_DB_DATE) . " 23:59:59')"], [__d('tools', 'Yesterday') . ' ' . __d('tools', 'until') . ' ' . __d('tools', 'Today'), "(Model.field >= '" . date(FORMAT_DB_DATE, time() - DAY) . " 00:00:00') AND (Model.field <= '" . date(FORMAT_DB_DATE) . " 23:59:59')"], [__d('tools', 'Today') . ' ' . __d('tools', 'until') . ' ' . __d('tools', 'Tomorrow'), "(Model.field >= '" . date(FORMAT_DB_DATE, time()) . " 00:00:00') AND (Model.field <= '" . date(FORMAT_DB_DATE, time() + DAY) . " 23:59:59')"], [__d('tools', 'Yesterday') . ' ' . __d('tools', 'until') . ' ' . __d('tools', 'Tomorrow'), "(Model.field >= '" . date(FORMAT_DB_DATE, time() - DAY) . " 00:00:00') AND (Model.field <= '" . date(FORMAT_DB_DATE, time() + DAY) . " 23:59:59')"]];
     foreach ($values as $v) {
         $ret = $this->Time->periodAsSql($v[0], 'Model.field');
         //pr($v[1]);
         //pr($ret);
         $this->assertSame($v[1], $ret);
     }
 }