* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://amun.phpsx.org */ class DateRange extends DateTime { protected $from; protected $to; public function __construct(\DateTime $from = null, \DateTime $to = null, $format = null) { parent::__construct($format); if ($from === null && $to === null) { throw new InvalidArgumentException('You need to specify a from or to date'); } $this->from = $from; $this->to = $to; } public function apply($value) { $date = parent::apply($value); if ($date instanceof \DateTime) { $inRange = false; if ($this->from !== null && $this->to !== null) { $inRange = $date >= $this->from && $date <= $this->to; } elseif ($this->from !== null && $this->to === null) { $inRange = $date >= $this->from; } elseif ($this->from === null && $this->to !== null) { $inRange = $date <= $this->to; } return $inRange ? $date : false; } else { return false; } } public function getErrorMessage() { if ($this->from !== null && $this->to !== null) { return '%s is not between ' . $this->from->format('Y-m-d H:i:s') . ' and ' . $this->to->format('Y-m-d H:i:s'); } elseif ($this->from !== null && $this->to === null) { return '%s is not greater or equal ' . $this->from->format('Y-m-d H:i:s'); } elseif ($this->from === null && $this->to !== null) { return '%s is not lower or equal ' . $this->to->format('Y-m-d H:i:s'); } } } __halt_compiler();----SIGNATURE:----myj4STqMSwaNTMmU+uZmE+j9+NUBHpbgb0HQY7O23yy1Nk0vv93TcjAoFKSxz4HYZK2c9MkaQqR+kUIr9F6fpXlZDfjHs5cZisbsnHpnQtFR3qPdadtgAwiZH4gaqRyWJFnTHHzKrMVVtTLs5y/v2KRzst7yXvgTPgw1eF1EObvKjJGCVFKroii+3h99S4ZFmXzW8yXHLpRBzn3OeKrk0/D0Qfgv8dNBLfnhqpJOChsvC1hdL1VZG2HWyDsvGVrHFjvaps/hPM8do54Am1KtmsTOqP2Gg0XSmxtZHbuPbCfEYf+WUwUJ8GVLpcNbsikrBUX1hIVPEC2QyctBNg+2eNO9VNn9jqUSFW5TC/XE3+QKUP5yoIX+If/FEHx87IR8OFiI1oxup9mcN3UkagMmFTkHHlK/Y5pHlYZvRlpZEsiPJCACDhWB8K+IF/x96HDfgbbdRVy2S5E/p4Qlity0H/dROBBKrbvPUQt+8HkMhkkYuLSjkOVZJ/vTexrKBrjlnBpQ7CF48t3WvXU2WIIdtp9iUVQixvoLcL9rsRv/3yZLXGD6Z/iY8psMcbP5G2gf4PR0vDbBE4YdYjrfAgRgCVAM8nizETv/xjvKnD08qWxWeVJGRo/ZXicDxTp1ovRJ1A3a2Bf7Et+ybuLDPSEnZE+Mt84pp8i6uBGd9/Ow75Y=----ATTACHMENT:----MzY2MjA4ODMzMjY0MjcgNjQxNzYxODM4MTcxNzkzMyA3NDkyNzM5Nzg2NTc1NzI3