2013-08-29 5 views
0

사용자는 원하는 날짜/시간 형식을 선택할 수 있으므로 대부분이 D, d M Y H:i:s과 비슷하지만 아무 것도 될 수 있습니다.PHP에서 datetime 형식의 시간 표시 지우기

그러나 일부 경우에만 날짜 부분을 표시하고 사용자의 형식을 사용하고 싶습니다.

PHP에서 이와 같은 형식으로 시간 부분을 제거하는 간단한 방법이 있습니까? 날짜 형식을 지정하기 전에 형식에서 모든 시간 요소를 제거하는 방법을 생각해 보았습니다. 그렇지만 다음과 같이 분리 문자를 어떻게 안정적으로 제거 할 수 있습니까? , 날짜 형식에 영향을 미치지 않고 (물론 이국적인 것이 될 수 있음).

+0

개인적으로 나는 날짜와 시간 형식 만 지정할 수있는 옵션을 제공 할 것입니다. – Anigel

+0

그게 실제로 이상적인 경우지만, 사용자 정보가 phpbb로 설정되어 있으며, 너무 많이 사용하지 않으려 고하지 않으므로 tooo 업그레이드를 어렵게 만들지 않아야합니다. –

+0

누군가는 정규 표현식을 사용하여 훌륭한 preg_replace 솔루션을 제공 할 것이지만 시간과 관련이있는 문자에 대해 str_replace를 수행 할 수 있다고 생각합니다 (제거하기 전/후에 비 공백 구분 기호를 찾습니다). 시, 분 및 초 값은 모두 알려져 있으며 검색하는 데 약 10 개 밖에 없습니다. ... –

답변

0

나는 데이터베이스에서 만나는 모든 datetime 형식에 대해 일치하는 날짜 형식을 정의하는 것이 가장 좋은 방법이라고 생각합니다. phpBB가 완전히 사용자 정의 된 형식을 허용하는지 여부는 알지 못합니다. 좀 더 어렵게 만들지 만 일반 사용자는 date()이라는 PHP 구성 옵션을 사용하지 않습니다.

0

언제나 그렇듯이 문제를 해결하는 데 여러 가지 방법이 있습니다.

한 가지 방법은 5 가지 형식으로 드롭 다운을 표시하는 것입니다. 그런 다음 사용자 기본 설정에 따라 서식을 다시 지정할 수있는 기능을 만듭니다. 그럼 nr 형식을 선택하십시오.

같은 소리 그 조항 경우의 2 드롭 다운에, 당신은 그럼 당신은 몇 가지와 기능이 단순히 그냥 내 사용자 설정으로 그 정수를 저장 한 다음이

$time_to_print = format_according_to_user_preference($preference,$timestamp); 

처럼 호출 할 수있는 기능을

function format_according_to_user_preference($preference,$timestamp){ 
    if($preference == 1){ 
    //American preference 
    return date('Y-m-d H:i:s',strtotime($timestamp)); 
    }else if($preference == 2){ 
    //European preference 
    return date('d-m-Y H:i:s',strtotime($timestamp)); 
    }else{ 
    //some default preference just in case user hasen't set a wish 
    return date('Y-M-D H:i:s',strtotime($timestamp)); 
    } 
}