0
나는 단지 시간을 (배열 형식으로) 24 시간 문자열로 변환하기를 원하기 때문에 간단한 질문이 있습니다. 내가 사용자 입력으로부터 시간을 얻고 포맷팅이 작동하지 않는 배열 객체에 배치하는 문제. 나는 $this->request->data['start_time']
이 형식의되지 않기 때문에, 당신은 타임 인스턴스를 생성해야 https://book.cakephp.org/3.0/en/core-libraries/time.html#conversion시간 배열 converson cakephp3
time format inputted from a form
'start_time' => [
'hour' => '02',
'minute' => '00',
'meridian' => 'pm'
],
view//
echo $this->Form->input('start_time', ['label' => 'Class Start Time','type' => 'time',
'interval' => 5,'timeFormat'=>12,'value'=>$startTime,]);
//controller
if ($this->request->is('post')) {
debug($this->request->data['start_time']->i18nFormat('HH:mm:ss'));//cant use on an array
//this works but is there a better way
$startTime = $this->request->data['start_time']['hour'].":".$this->request->data['start_time']['minute']." ".
$this->request->data['start_time']['meridian'];
$this->request->data['start_time'] = date("H:i:s", strtotime($startTime));
debug($this->request->data);
괜찮 았어. 내가 한 일을 보았는데 훌륭한 대답인데 어떻게 내 솔루션과 크게 다른가? – jagguy
리서치 연구를한다면 똑같은 답을 얻을 수 있고 마법 같은 방법은 없다. 요점은 관습을 따르고 유틸리티에 내장 된 프레임 워크를 사용하는 것입니다. 코드를 반복하지 않고 포맷 된 데이터를 얻으려면 엔티티에서 _Virtual Field_ (_getStartTime())을 작성하십시오. 따라서 $ entity-> start_time을 호출 할 때마다 데이터베이스에서 수정하지 않고 형식화 된 시간을 가져옵니다. –