Overview

Namespaces

  • MvcCore
    • Ext
      • Auth
        • Virtual
      • Debug
        • Tracy
      • Form
        • Core
        • Validators
      • Request
      • Router
        • Lang
      • View
        • Helpers
  • None

Classes

  • MvcCore
  • MvcCore\Config
  • MvcCore\Controller
  • MvcCore\Debug
  • MvcCore\Ext\Auth
  • MvcCore\Ext\Auth\Controller
  • MvcCore\Ext\Auth\SignInForm
  • MvcCore\Ext\Auth\SignOutForm
  • MvcCore\Ext\Auth\User
  • MvcCore\Ext\Auth\Virtual\Controller
  • MvcCore\Ext\Auth\Virtual\Form
  • MvcCore\Ext\Auth\Virtual\User
  • MvcCore\Ext\Debug\Tracy
  • MvcCore\Ext\Debug\Tracy\AuthPanel
  • MvcCore\Ext\Debug\Tracy\IncludePanel
  • MvcCore\Ext\Debug\Tracy\MvcCorePanel
  • MvcCore\Ext\Debug\Tracy\RoutingPanel
  • MvcCore\Ext\Debug\Tracy\SessionPanel
  • MvcCore\Ext\Form
  • MvcCore\Ext\Form\Button
  • MvcCore\Ext\Form\Checkbox
  • MvcCore\Ext\Form\CheckboxGroup
  • MvcCore\Ext\Form\Core\Base
  • MvcCore\Ext\Form\Core\Configuration
  • MvcCore\Ext\Form\Core\Field
  • MvcCore\Ext\Form\Core\FieldGroup
  • MvcCore\Ext\Form\Core\Helpers
  • MvcCore\Ext\Form\Core\Validator
  • MvcCore\Ext\Form\Core\View
  • MvcCore\Ext\Form\CountrySelect
  • MvcCore\Ext\Form\Date
  • MvcCore\Ext\Form\DateTime
  • MvcCore\Ext\Form\Email
  • MvcCore\Ext\Form\Hidden
  • MvcCore\Ext\Form\NoType
  • MvcCore\Ext\Form\Number
  • MvcCore\Ext\Form\Password
  • MvcCore\Ext\Form\RadioGroup
  • MvcCore\Ext\Form\Range
  • MvcCore\Ext\Form\ResetButton
  • MvcCore\Ext\Form\ResetInput
  • MvcCore\Ext\Form\Select
  • MvcCore\Ext\Form\SubmitButton
  • MvcCore\Ext\Form\SubmitInput
  • MvcCore\Ext\Form\Text
  • MvcCore\Ext\Form\Textarea
  • MvcCore\Ext\Form\Time
  • MvcCore\Ext\Form\Validators\CompanyId
  • MvcCore\Ext\Form\Validators\CompanyVatId
  • MvcCore\Ext\Form\Validators\Date
  • MvcCore\Ext\Form\Validators\Email
  • MvcCore\Ext\Form\Validators\FloatVal
  • MvcCore\Ext\Form\Validators\Integer
  • MvcCore\Ext\Form\Validators\Maxlength
  • MvcCore\Ext\Form\Validators\MaxSelectedOptions
  • MvcCore\Ext\Form\Validators\MinSelectedOptions
  • MvcCore\Ext\Form\Validators\NumberField
  • MvcCore\Ext\Form\Validators\Pattern
  • MvcCore\Ext\Form\Validators\Phone
  • MvcCore\Ext\Form\Validators\RangeField
  • MvcCore\Ext\Form\Validators\SafeString
  • MvcCore\Ext\Form\Validators\Time
  • MvcCore\Ext\Form\Validators\Url
  • MvcCore\Ext\Form\Validators\ValueInOptions
  • MvcCore\Ext\Form\Validators\ZipCode
  • MvcCore\Ext\Request\ApacheDpi
  • MvcCore\Ext\Request\Cli
  • MvcCore\Ext\Router\Lang
  • MvcCore\Ext\Router\Lang\Route
  • MvcCore\Ext\Router\Media
  • MvcCore\Ext\Router\MediaSiteKey
  • MvcCore\Ext\View\Helpers\Assets
  • MvcCore\Ext\View\Helpers\Css
  • MvcCore\Ext\View\Helpers\Js
  • MvcCore\Ext\View\Helpers\LineBreaks
  • MvcCore\Model
  • MvcCore\Request
  • MvcCore\Response
  • MvcCore\Route
  • MvcCore\Router
  • MvcCore\Session
  • MvcCore\Tool
  • MvcCore\View

Exceptions

  • MvcCore\Ext\Form\Core\Exception
  • Overview
  • Namespace
  • Class
  • Tree
  1:   2:   3:   4:   5:   6:   7:   8:   9:  10:  11:  12:  13:  14:  15:  16:  17:  18:  19:  20:  21:  22:  23:  24:  25:  26:  27:  28:  29:  30:  31:  32:  33:  34:  35:  36:  37:  38:  39:  40:  41:  42:  43:  44:  45:  46:  47:  48:  49:  50:  51:  52:  53:  54:  55:  56:  57:  58:  59:  60:  61:  62:  63:  64:  65:  66:  67:  68:  69:  70:  71:  72:  73:  74:  75:  76:  77:  78:  79:  80:  81:  82:  83:  84:  85:  86:  87:  88:  89:  90:  91:  92:  93:  94:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 
<?php

/**
 * MvcCore
 *
 * This source file is subject to the BSD 3 License
 * For the full copyright and license information, please view
 * the LICENSE.md file that are distributed with this source code.
 *
 * @copyright   Copyright (c) 2016 Tom FlĂ­dr (https://github.com/mvccore/mvccore)
 * @license     https://mvccore.github.io/docs/mvccore/4.0.0/LICENCE.md
 */

namespace MvcCore\Ext\Form;

require_once('Core/Field.php');
//require_once('Core/View.php');

class Date extends Core\Field
{
    /**
     * date/time/datetime field, coud be defined in extended
     * control classes laso as week, year or day
     * @see http://www.html5tutorial.info/html5-date.php
     * @var string
     */
    public $Type = 'date';
    /**
     * Valid Datetime format to create PHP Datetime 
     * by DateTime::createFromFormat($field->Format);.
     * @see http://php.net/manual/en/datetime.createfromformat.php
     * @example 'Y-m-d', 'Y/m/d' ...
     * @var string
     */
    public $Format = 'Y-m-d';
    /**
     * Minimum date/time/datetime for current control,
     * by configured format asigned as string value.
     * @var string
     */
    public $Min = null;
    /**
     * Maximum date/time/datetime for current control,
     * by configured format asigned as string value.
     * @var string
     */
    public $Max = null;
    /**
     * HTML5 input:date, input:time and input:datetime control
     * step attribute in seconds.
     * @see input:date
     * @var string
     */
    public $Step = null;
    /**
     * Any html code containing substring '{control}'
     * to wrap any code around control itself.
     * @var string
     */
    public $Wrapper = '{control}';
    /**
     * Validators used for submitted value to check format, min, max and dangerous characters
     * @var string[]|\Closure[]
     */
    public $Validators = array('Date');
    /**
     * Set datetime value and hold it formated as string by:
     * http://php.net/manual/en/datetime.createfromformat.php
     * @param \DateTime|string $format
     * @return \MvcCore\Ext\Form\Date
     */
    public function SetValue ($value) {
        if (gettype($value) == 'string') {
            $this->Value = $value;
        } else {
            $this->Value = $value->format($this->Format);
        }
        return $this;
    }
    /**
     * Set valid date format for:
     * http://php.net/manual/en/datetime.createfromformat.php
     * @param string $format 
     * @return \MvcCore\Ext\Form\Date
     */
    public function SetFormat ($format) {
        $this->Format = $format;
        return $this;
    }
    /**
     * Set date/time/datetime minimum,
     * examples:
     *  - date      (with format 'Y-m-d')       : '2015-11-25'
     *  - time      (with format 'H:i')         : '11:30'
     *  - datetime  (with format 'Y-m-d H:i')   : '2015-11-25 11:30'
     * @param string $min 
     * @return \MvcCore\Ext\Form\Date
     */
    public function SetMin ($min) {
        $this->Min = $min;
        return $this;
    }
    /**
     * Set date/time/datetime minimum,
     * examples:
     *  - date      (with format 'Y-m-d')       : '2017-01-13'
     *  - time      (with format 'H:i')         : '18:25'
     *  - datetime  (with format 'Y-m-d H:i')   : '2017-01-13 18:25'
     * @param string $min
     * @return \MvcCore\Ext\Form\Date
     */
    public function SetMax ($max) {
        $this->Max = $max;
        return $this;
    }
    /**
     * Set step in seconds.
     * @see http://www.wufoo.com/html5/types/4-date.html
     * @param int $step 
     * @return \MvcCore\Ext\Form\Date
     */
    public function SetStep ($step) {
        $this->Step = $step;
        return $this;
    }
    /**
     * Set html code wrapper, wrapper has to contain
     * replacement in form '{control}'. Around this 
     * substring you can wrap any html code you want.
     * @param string $wrapper 
     * @return \MvcCore\Ext\Form\Date
     */
    public function SetWrapper ($wrapper) {
        $this->Wrapper = $wrapper;
        return $this;
    }
    /**
     * Render control element, without label or possible error messages, only the element.
     * @return string
     */
    public function RenderControl () {
        $attrsStr = $this->renderControlAttrsWithFieldVars(
            array('Min', 'Max', 'Step')
        );
        include_once('Core/View.php');
        $result = Core\View::Format(static::$Templates->control, array(
            'id'        => $this->Id,
            'name'      => $this->Name,
            'type'      => $this->Type,
            'value'     => $this->Value,
            'attrs'     => $attrsStr ? " $attrsStr" : '',
        ));
        $wrapperReplacement = '{control}';
        $wrapper = mb_strpos($wrapperReplacement, $this->Wrapper) !== FALSE ? $this->Wrapper : $wrapperReplacement;
        return str_replace($wrapperReplacement, $result, $wrapper);
    }
}
MvcCore API documentation generated by ApiGen