_appendName = true; $this->_type = 'date_range_picker'; } /** * HTML code to display this datepicker */ public function toHtml() { $js = $this->getElementJS(); return $js.parent::toHtml(); } function setValue($value) { $this->updateAttributes( array( 'value' => $value ) ); } /** * Get the necessary javascript for this datepicker */ private function getElementJS() { $js = null; $id = $this->getAttribute('id'); //timeFormat: 'hh:mm' $js .= ""; return $js; } /** * @param array $dateRange * @return array */ function parseDateRange($dateRange) { $dates = explode('/', $dateRange); $dates = array_map('trim', $dates); return array( 'start' => $dates[0], 'end' => $dates[1] ); } /** * @param array $dates result of parseDateRange() * @return bool */ function validateDates($dates) { if (empty($dates['start']) || empty($dates['end'])) { return false; } $format = 'Y-m-d H:i'; $d = DateTime::createFromFormat($format, $dates['start']); $resultStart = $d && $d->format($format) == $dates['start']; $d = DateTime::createFromFormat($format, $dates['end']); $resultEnd = $d && $d->format($format) == $dates['end']; if (!($resultStart) || !$resultEnd) { return false; } return true; } }