2009-08-04 5 views
1

다음 문자열 mm [some char] dd [some char] yyyy를 yyyymmdd로 변환하는 가장 좋은 방법은 무엇입니까? 나는 장래에 현지인에 따라 dd [some char] mm [some char] yyyy와 같은 것을 원할 것입니다.
이미 젠드 프레임 워크 API를 사용하는 방법이 경우는 당신은 어떤 날짜 형식의 문자 위의 두 번째 문에 Ymd을 대체 할 수문자열을 mysql 날짜로 변환하는 가장 좋은 방법은 무엇입니까?

답변

2
<?php 
$str = '08-24-1989'; // can be in any recognizable date format.  
$new_str = date('Ymd', strtotime($str)); // produces "20090824". 
?> 

더 나은 here을 발견했다.

Zend의 Zend_Date 프레임 워크를 사용하려는 경우 몇 가지 예와 설명서 here을 확인하십시오. 솔직히 PHP 함수는 훨씬 간단하고 사용하기 쉽습니다.

+0

12 월이 하루보다 낮 으면 달이 분명하지 않은 경우이 함수는 잘못된 결과를 생성 할 수 있습니다. 조심해서 몇 가지 날짜를 확인하십시오 :) –

+1

Y-m-d 형식으로 항상 머물러있는 것이 가장 좋습니다. 그것은 항상 옳은 것처럼 보입니다. – smack0007

+0

나는 그 다음 해의 달 (시, 분, 초 - Y-m-d H : i : s 형식)에 동의합니다. _sort_ 및 _compare_가 더 쉽습니다. – wenbert

1

date('Ymd', strtotime($time));

Strtotime 절대적으로 당신이 다음 원하는 형식으로 넣어 Date를 사용할 수있는 표준 하나에 거의 모든 시간 형식을 변환하는 가장 좋은 도구입니다.

제목에 MySQL 날짜가 나와 있기 때문에이 이름은 mysql에서 사용하는 문자열 형식입니다.

date('Y-m-d h:i:s', strtotime($time));

0

되지 않는 한 어떤 문자] 변화의 mysql str_to_date 함수를 사용하여, 예를 들어 STR_TO_DATE ('12 | 23 | 2009 ','% m | % d | % Y ');

0

모든 날짜 저장에는 TIMESTAMP를 절대 사용합니다. 시간 차이 (예 : SELECT ... WHERE 날짜 2138728753 및 376251237)를 처리하기가 매우 쉽고 어떤 로케일로도 쉽게 변환 할 수 있습니다.

+0

나는 항상 너와 agrre. 이 특정 날짜는 생년월일입니다. 숫자의 순서를 변경하는 것 외에는 조작 할 필요가 없습니다. –

+0

아, 알 겠어 ... 네, 그렇다면 strtotime과 date를 사용하는 것이 더 낫습니다;) –

+0

Eh, no ... :) 쉬운 지역화를 목표로한다면 타임 스탬프가 여전히 더 좋다고 생각합니다. 예를 들어 일부 동부 국가에서는 그레고리력을 사용하지 않습니다 (http://en.wikipedia.org/wiki/Calendar#Currently_used_calendars 참조). 당신은 여전히 ​​"기계 판독 가능 형식"(Y-m-d 정도)으로 날짜를 변환하고 원하는 달력으로 변환해야합니다 ... –

관련 문제