밀리초에서 m-d-Y H:i:s.u로 날짜 형식을 지정할 때 마이크로초 필드에 000000이 표시되는 이유는 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-23 19:52:30
원래의
512명이 탐색했습니다.

Why is the Microseconds Field Displaying 000000 When Formatting Dates in m-d-Y H:i:s.u from Milliseconds?

밀리초에서 m-d-Y H:i:s.u 날짜 형식 가져오기

이 쿼리의 목표는 "m-d-Y H:i: s.u"는 밀리초 단위로 제공되는 Unix 타임스탬프에서 가져온 것입니다. 그러나 결과의 마이크로초 필드에 계속 000000이 표시됩니다.

<code class="php">$milliseconds = 1375010774123;
$d = date("m-d-Y H:i:s.u", $milliseconds/1000);
print $d;</code>
로그인 후 복사

출력:

07-28-2013 11:26:14.000000
로그인 후 복사

해결책

이 문제를 해결하려면, 입력 형식 "U.u"를 사용할 수 있습니다:

<code class="php">$now = DateTime::createFromFormat('U.u', microtime(true));
echo $now->format("m-d-Y H:i:s.u");</code>
로그인 후 복사

출력:

04-13-2015 05:56:22.082300
로그인 후 복사

이 접근 방식은 PHP 설명서의 다음 형식 지정자를 활용합니다.

  • U: Unix Epoch 이후의 초
  • u: 마이크로초

시간대 및 마이크로타임()

createFromFormat() 메서드는 명시적으로 제공되지 않은 경우 일반적으로 현지 시간대를 사용합니다. 하지만 microtime()은 Unix Epoch 이후 경과된 초 수를 UTC로 반환하므로 DateTime 객체는 암시적으로 UTC로 초기화됩니다.

특정 시간대에 대한 시간을 표시해야 하는 경우 설정해야 합니다. 초기 DateTime 생성 후 setTimeZone() 사용:

<code class="php">$now->setTimeZone(new DateTimeZone('America/New_York'));</code>
로그인 후 복사

MySQL에 입력

형식화된 날짜 문자열을 MySQL에 입력하려면 형식을 다음과 같이 수정해야 합니다.

<code class="php">format("Y-m-d H:i:s.u")</code>
로그인 후 복사

위 내용은 밀리초에서 m-d-Y H:i:s.u로 날짜 형식을 지정할 때 마이크로초 필드에 000000이 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!