2012-07-04 5 views
4

PHP 배열 date_parse에서 반환하는 형식의 날짜 배열을 사용하고 있습니다. 이 날짜 배열을 다시 날짜 문자열로 변환해야합니다.date_parse에서 반환 된 날짜 배열을 날짜 문자열로 변환하는 방법

date_parse 루틴의 역순으로 수행하는 함수를 찾고 있습니다. 그것은 날짜 배열을 매개 변수로 받아들이고 날짜 문자열을 반환하는 함수입니다.

http://php.net/manual/en/function.date-parse.php

날짜 가끔 '년', '달'만 값을 가질 것 가지고 배열, 그리고 '하루'. 다른 경우에는 '년', '월', '일', '시간', '분'및 '초'에 대한 값을 갖습니다. 시간, 분 및 초 값이 누락 된 경우 해당 루틴은 문자열의시, 분 및 두 번째 부분에 대해 00:00:00의 날짜 문자열을 반환합니다.

나는 약간의 시간을 들여 검색했지만, 지금까지는 date_parse의 반대 인 함수를 찾지 못했습니다.

답변

4

나는 같은 질문에 대한 답을 찾고 있었지만 찾지 못했습니다. 나는

$date_array = date_parse($date_string); 

// returns original date string assuming the format was Y-m-d H:i:s 
$date_string = date('Y-m-d H:i:s', mktime($date_array['hour'], $date_array['minute'], $date_array['second'], $date_array['month'], $date_array['day'], $date_array['year'])); 

내가이 테스트 문자열이 시간, 분, 초를 mktime()에 전달하지 않으면 당신이 원하는 제로 포함됩니다 ... date()mktime()를 사용하여 the PHP documentation에 몇 가지 예를 발견하고이 함께했다.

0

글쎄, 내가 찾을 수있는 가장 좋은 방법은 바로 sprintf ... mktime을 사용하는 것입니다. 설정해야 할 시간 로케일이 필요하며 날짜 형식을 지정하는 타임 스탬프도 사용하고 싶지 않습니다.

그래서, 단지 형식의 인쇄 분야 :

// Parse from YYYY-MM-DD to associative array 
$date = date_parse_from_format("Y-m-d", "2014-07-15"); 
// Write back to DD/MM/YYYY with leading zeros 
echo sprintf("%02d/%02d/%04d", $date["day"], $date["month"], $date["year"]); 

편집 :하지만이 솔루션은 당신이 필요로하는 경우, 예를 들어, 84 "에 1984 년부터 예를 들면 년 (단지 마지막 2 개 자리를 인쇄하는 일부 조정이 필요 ").

+1

별로 미세 조정 ... 단지'$ 날짜 [ "년"] % 100'을하고 당신이 얻을 것이다 마지막 2 자리는 빠릅니다. –

0

나는 형태로 날짜 선택 도구를 사용하고 반환 형식은 배열입니다 :

[시작] => 배열 ([월] => 04 [일] => 26 년] => 2016 [ 시간] => 05 [분] => 54 [자오선] => 오후) [끝] => 배열 ([월] => 04 [일] => 26 [연도] => 2016 [ 날짜 배열 인에 대한

$timeArray = $this->request->data['Task']['start']; 
$start = $this->Task->deconstruct('start', $timeArray); 

내 모델은 "작업"이고 키 : 분] => 54 [자오선] => 오후)

날짜 객체에 해당 배열로 변환하는 방법은 다음과 같습니다 "시작", 당신은이 두 가지를 대체해야합니다. 자신 만의 필드.

그리고 날짜 개체의 출력

은 다음과 같습니다

2016-04-26 17:54:00 

참조 : How best to convert CakePHP date picker form data to a PHP DateTime object?

관련 문제