function dateYMD($fieldName, $selected = null, $attributes = array(), $showEmpty = true) { if (!isset($this->options['month'])) { $this->options['month'] = array(); for ($i = 1; $i <= 12; $i++) { $this->options['month'][sprintf("%02d", $i)] = $i; } } $sep = array('', '', ''); if (isset($attributes['separator'])) { if (is_array($attributes['separator'])) { $sep = $attributes['separator']; $attributes['separator'] = ""; } } else { $attributes['separator'] = ""; $sep = array("年", "月", "日"); } $ret = parent::dateTime($fieldName, 'YMD', 'NONE', $selected, $attributes, $showEmpty); $ret = preg_replace('|</select>|', '{/select}' . @$sep[0], $ret, 1); $ret = preg_replace('|</select>|', '{/select}' . @$sep[1], $ret, 1); $ret = preg_replace('|</select>|', '{/select}' . @$sep[2], $ret, 1); $ret = $ret = str_replace('{/select}', '</select>', $ret); return $ret; }
/** * Calls ParsleyProcessor::processDatetimeInput() to apply data-parsley-multiple on date inputs * * @param string $fieldName * @param string $dateFormat * @param string $timeFormat * @param array $attributes * @return string */ public function dateTime($fieldName, $dateFormat = 'DMY', $timeFormat = '12', $attributes = array()) { if (isset($this->_processor)) { $attributes = $this->_processor->processDatetimeInput($fieldName, $attributes); } return parent::dateTime($fieldName, $dateFormat, $timeFormat, $attributes); }
/** * dateTime method * * Use an input and the jquery ui datepicker instead * * Pass $options['selects'] = true to bypass this override * * @param mixed $fieldName * @param string $dateFormat 'DMY' * @param string $timeFormat '12' * @param mixed $selected null * @param array $options array() * @param bool $showEmpty true * @return void * @access public */ public function dateTime($fieldName, $dateFormat = 'DMY', $timeFormat = '12', $selected = null, $options = array(), $showEmpty = true) { if (!empty($options['selects'])) { unset($options['selects']); return parent::dateTime($fieldName, $dateFormat, $timeFormat, $selected, $options, $showEmpty); } $options = $this->_initInputField($fieldName, array_merge(array('type' => 'text'), $options)); $id = $options['id']; if (isset($this->Asset)) { $this->Asset->css('/js/theme/ui.datepicker', null, null, $this->name); $this->Asset->js('jquery-ui', $this->name); $timeSuffix = ''; if ($timeFormat) { $time = array_pop(explode(' ', $options['value'])); if ($time) { preg_match('@[1-9]@', $time, $matches); if ($matches) { $timeSuffix = ' ' . $time; } } } if (!empty($options['value'])) { if ($timeSuffix) { $options['value'] = str_replace('-', '/', $options['value']); } else { list($options['value']) = str_replace('-', '/', explode(' ', $options['value'])); } } $dateFormat = 'yy/mm/dd' . $timeSuffix; $this->Asset->codeBlock('$(document).ready(function() { $("#' . $id . '") .datepicker({ showOn: \'button\', buttonImage: \'' . $this->Html->url('/img/calendar.gif') . '\', buttonImageOnly: true, dateFormat: \'' . $dateFormat . '\' }); });', array('inline' => false)); } return $this->text($fieldName, am($options, array('class' => 'datepicker'))); }
/** * 「年月日時分」入力セレクトボックス作成機能を拡張する */ public function dateTime($fieldName, $dateFormat = 'DMY', $timeFormat = '12', $attributes = array()) { if (isset($attributes['extraFormat'])) { $this->_extraFormat[$fieldName] = $attributes['extraFormat']; unset($attributes['extraFormat']); } return parent::dateTime($fieldName, $dateFormat, $timeFormat, $attributes); }
/** * @deprecated * use Form::dateTimeExt */ public function dateTime($field, $options = array(), $tf = 24, $s = null, $a = array()) { # temp fix if (!is_array($options)) { if ($options === null) { $options = 'DMY'; } return parent::dateTime($field, $options, $tf, $s, $a); } return $this->dateTimeExt($field, $options); }
public function dateTime($fieldName, $dateFormat = 'DMY', $timeFormat = '12', $attributes = array()) { return parent::dateTime($fieldName, $dateFormat, $timeFormat, $attributes); }
/** * Custom fix to overwrite the default of non iso 12 hours to 24 hours. * Try to use Form::dateTimeExt, though. * * @see https://cakephp.lighthouseapp.com/projects/42648/tickets/3945-form-helper-should-use-24-hour-format-as-default-iso-8601 * * @param string $field * @param mixed $options * @return string Generated set of select boxes for the date and time formats chosen. */ public function dateTime($field, $options = array(), $timeFormat = 24, $attributes = array()) { // temp fix if (!is_array($options)) { return parent::dateTime($field, $options, $timeFormat, $attributes); } return $this->dateTimeExt($field, $options); }
function dateTime($fieldName, $dateFormat = 'YMD', $timeFormat = 24, $selected = null, $attributes = array()) { if (empty($attributes)) { $attributes['separator'] = array(); } $attributes += array('empty' => false); $separator = '-'; if (isset($attributes['separator'])) { $separator = $attributes['separator']; $attributes['separator'] = '-'; } if (!isset($attributes['monthNames'])) { $attributes['monthNames'] = false; } $date = parent::dateTime($fieldName, $dateFormat, null, $selected, $attributes); $time = parent::dateTime($fieldName, null, $timeFormat, $selected, $attributes); if (is_array($separator)) { $defaults = array('year' => __('年', true), 'month' => __('月', true), 'day' => __('日', true), 'hour' => __('時', true), 'minute' => __('分', true), 'second' => __('秒', true)); $separator = array_merge($defaults, $separator); $format = array(); if ($dateFormat != 'NONE' && !empty($dateFormat)) { foreach (preg_split('//', $dateFormat, -1, PREG_SPLIT_NO_EMPTY) as $char) { switch ($char) { case 'Y': $format[] = $separator['year']; break; case 'M': $format[] = $separator['month']; break; case 'D': $format[] = $separator['day']; break; } } } preg_match_all('|<select.*?>.+?</select>|ms', $date, $matches); $date = ""; for ($i = 0; $i < count($matches[0]); $i++) { $date .= $matches[0][$i] . $format[$i]; } $format = array(); if ($timeFormat != 'NONE' && !empty($timeFormat)) { switch ($timeFormat) { case 12: $format[] = $separator['hour']; $format[] = $separator['minute']; $format[] = ''; case 24: $format[] = $separator['hour']; $format[] = $separator['minute']; break; default: break; } } preg_match_all('|<select.*?>.+?</select>|ms', $time, $matches); $time = ""; for ($i = 0; $i < count($matches[0]); $i++) { $time .= $matches[0][$i] . $format[$i]; } } elseif (is_string($separator)) { $date = str_replace('</select>-', '</select>' . $separator, $date); } return $date . $time; }