2016-07-15 3 views
-1

함수를 생성하고 날짜를 반환합니다. 2016-07-15T10 : 10 : 52입니다. +00 : 00DateTime의 밀리 세컨드에 대한 3 자리 숫자

그것은 괜찮습니다하지만 문제는 밀리 초를위한 자리입니다. 마지막 3 자리를 제거하는 방법은 무엇입니까? 3 개가 필요합니다.

private function getFormattedDate($time = 'now'){ 
    $t = microtime(true); 
    $micro = sprintf("%06d",($t - floor($t)) * 1000000); 
    $d = new DateTime(date('Y-m-d H:i:s.'.$micro, $t)); 
    $d->modify($time); 

    return $d->format('Y-m-d\Th:i:s.uP'); // note at point on "u" 
    } 

답변

2

수정 자 u 수정자는 항상 6 자리를 반환합니다. Quoting the manual :

마이크로 초 (PHP 5.2.2에서 추가) date 매개 변수는 정수 매개 변수를 사용하므로 date()는 항상 000000을 생성하지만 DateTime :: microseconds()는 마이크로 초로 DateTime이 작성된 경우 마이크로 초를 지원합니다.

원하지 않는 경우 수동으로 필요한 형식을 삽입해야합니다.

return $d->format('Y-m-d\Th:i:s.') . substr($micro, 0, 3) . $d->format('P'); 

2016-07-15T12:29:30.546+02:00

+0

수치 등이 출력 할 것이다 뭔가. 감사 – sherdog

관련 문제