목차
목차
특정 시간 동안 DateTime 객체를 구성합니다
시간대
현지화
시간 여행
정기적으로 발생하는 날짜 및 시간
며칠 전에?
다음 단계?
웹 프론트엔드 CSS 튜토리얼 PHP 날짜 및 시간 레시피

PHP 날짜 및 시간 레시피

Mar 17, 2025 am 09:30 AM

PHP 날짜 및 시간 레시피

날짜와 시간 처리는 프로그래머를 두통으로 만드는 문제 중 하나입니다. 동시에, 이들은 메타 데이터와 물건 분류에서 시간 기반 트리거에 이르기까지 소프트웨어 개발의 기초이며, 그 사이의 많은 응용 프로그램입니다.

날짜와 시간도 오류가 발생하기 쉽습니다. 부적절한 처리로 최종 사용자와 프로그래머 동료를 혼동 할 수 있습니다.

다음은 PHP 프로그래밍 언어의 날짜와 시간을 처리하는 방법에 대한 빠른 안내서입니다. 날짜 형식 및 조정과 같은 가장 일반적인 요구에 대한 참조로 설계되었습니다. 간단하지만 요구의 80%를 충당 할 가능성이 높습니다.

목차

  • 현재 날짜와 시간을 얻으십시오
  • 특정 시간 동안 DateTime 객체를 구성합니다
  • 시간대
  • 현지화
  • 시간 여행
  • 정기적으로 발생하는 날짜 및 시간
  • 며칠 전에?
  • 다음 단계?

이 연구는 CSS- 트릭의 공식 학습 파트너 인 Frontend Masters에 의해 지원되었습니다.

프론트 엔드 개발 교육이 필요하십니까?

프론트 엔드 마스터스는 배우기에 가장 좋은 곳입니다. 그들은 가장 중요한 프론트 엔드 기술에 대한 과정을 제공합니다. 풀 스택 개발자가되고 싶으십니까? 이것이 최선의 선택입니다.

코스 #### 현재 날짜와 시간을 얻으십시오

날짜와 시간은 타임 스탬프 (예 : Epoch Time), DateTime 객체 및 문자열의 세 가지 형태로 표시 될 수 있습니다.

먼저 현재 날짜 및 시간에 대한 코드를 가져옵니다.

  php $ now = new DateTime ();
var_dump ($ now);

// 객체 (dateTime)#1 (3) {
// [ "date"] =?>
// String (26) "2021-10-13 22 : 25 : 11.790490"
// [ "timezone_type"] =>
// int (3)
// [ "TimeZone"] =>
// String (12) "아시아/자카르타"
//}
로그인 후 복사

이것은 날짜 및 시간 문자열을 만드는 데 사용할 수있는 DateTime 객체를 제공합니다.

  php $ now = new DateTime ();
echo $ now-?> 형식 ( "YMD");
echo $ now-> 형식 ( "ymd h : i : s a");
로그인 후 복사

Y가 연도를 나타내고, M은 달을 나타내고, D는 달의 날짜 등을 대표한다는 것을 직관적으로 이해할 수 있습니다. 전체 매개 변수 목록은 PHP 매뉴얼에서 찾을 수 있지만 참조를 위해 가장 일반적으로 사용되는 매개 변수 중 일부를 나열하겠습니다.

DateTime 객체는 타임 스탬프로 변환 할 수 있습니다.

  php $ now = new DateTime ();
echo $ now-?> getTimestamp ();
로그인 후 복사

그러나 DateTime 객체를 구성하지 않고도 현재 타임 스탬프를 얻을 수 있습니다.

  php echo time ();
로그인 후 복사
?>

특정 시간 동안 DateTime 객체를 구성합니다

특정 시간 동안 DateTime 객체를 구성하려면 (예 : 2011 년 7 월 14 일)? 형식의 날짜 문자열을 생성자에게 전달할 수 있습니다.

php $ date = new DateTime ( "2011-07-14"); var_dump ($ date); // 객체 (dateTime)#1 (3) { // [ "date"] =?> // String (26) "2011-07-14 00 : 00 : 00.000000" // [ "timezone_type"] => // int (3) // [ "TimeZone"] => // String (12) "아시아/자카르타" //}

생성자는 또한 다른 형식을 수락합니다.

php $ date = new DateTime ( "14-07-2011"); var_dump ($ date); // 객체 (dateTime)#1 (3) { // [ "date"] =?> // String (26) "2011-07-14 00 : 00 : 00.000000" // [ "timezone_type"] => // int (3) // [ "TimeZone"] => // String (12) "아시아/자카르타" //}

그러나 다음과 같은 모호한 형식을 알고 있어야합니다.

php $ date = new DateTime ( "07/14/2011"); var_dump ($ date); // 객체 (dateTime)#1 (3) { // [ "date"] =?> // String (26) "2011-07-14 00 : 00 : 00.000000" // [ "timezone_type"] => // int (3) // [ "TimeZone"] => // String (12) "아시아/자카르타" //}

모든 사람이 미국의 날짜 형식에 익숙해야한다고 생각할 수도 있습니다. 그러나 모든 사람이 그것에 익숙한 것은 아니며 다르게 해석 될 수 있습니다. PostgreSQL도 예외는 아닙니다.

공개되지 않은 경우 테이블을 만듭니다 .datetime_demo ( 생성 된 날짜 ); DateTime_demo (create_at) 값에 삽입 ('07/12/2011 '); datetime_demo에서 create_at를 선택하십시오. / * 2011-12-07 * /

이것이 2011 년 7 월 12 일에 돌아올 것이라고 생각할 수도 있지만 2011 년 12 월 7 일에 돌아옵니다. 더 나은 접근 방식은 명시적인 형식을 사용하는 것입니다.

php $ date = datetime :: createfromformat ( 'm/d/y', "10/08/21"); var_dump ($ date); // 객체 (dateTime)#2 (3) { // [ "date"] =?> // String (26) "2021-10-08 16 : 00 : 47.000000" // [ "timezone_type"] => // int (3) // [ "TimeZone"] => // String (12) "아시아/자카르타" //}

타임 스탬프에서 DateTime 객체를 구성하려면 어떻게해야합니까?

php $ date = new DateTime (); $ DATE-?> SETTIMESTAMP (1634142890); var_dump ($ date); // 객체 (dateTime)#1 (3) { // [ "date"] => // String (26) "2021-10-13 23 : 34 : 50.000000" // [ "timezone_type"] => // int (3) // [ "TimeZone"] => // String (12) "아시아/자카르타" //}

타임 스탬프 객체를 형식의 날짜 문자열로 변환하려면 dateTime 객체를 만들 필요가 없습니다.

php echo 날짜 ( "ymd h : i a", time ());?>

시간대

예를 들어 태평양 표준 시간, 동부 일광 시간 등을 다루는 경우 시간대 정보가 포함 된 DateTime 객체를 만들 수 있습니다.

php $ timezone = new dateTimezone ( "America/New_York"); $ date = new DateTime ( "2021-10-13 05:00", $ timezone); var_dump ($ date); // 객체 (dateTime)#1 (3) { // [ "date"] =?> // String (26) "2021-10-13 05 : 00 : 00.000000" // [ "timezone_type"] => // int (3) // [ "TimeZone"] => // String (16) "America/New_York" //} // 예를 들어, Eastern Daylight Time : New York $ Date = New DateTime ( "2021-10-13 05:00 EDT"); var_dump ($ date); // 객체 (dateTime)#2 (3) { // [ "date"] => // String (26) "2021-10-13 05 : 00 : 00.000000" // [ "timezone_type"] => // int (2) // [ "TimeZone"] => // String (3) "edt" //} $ date = new DateTime ( "2021-10-13 05:00 -04 : 00"); var_dump ($ date); // 객체 (dateTime)#1 (3) { // [ "date"] => // String (26) "2021-10-13 05 : 00 : 00.000000" // [ "timezone_type"] => // int (1) // [ "TimeZone"] => // String (6) "-04 : 00" //}

시간대 정보가 포함 된 DateTime 객체를 만드는 세 가지 방법이 있습니다. Timezone_type 각 방법에 대해 다른 값을 허용합니다.

그러나 뉴욕 시간대에 표시된 날짜와 시간을 자카르타 시간대에 전시하기 위해 전환하려면 어떻게해야합니까?

php $ newyorkTimezone = New DateTimezone ( "America/New_York"); $ date = new DateTime ( "2021-11-11 05:00", $ NewYorkTimeZone); echo $ date-?> 형식 ( "YMD H : I A"); $ jakartatimezone = 새로운 DateTimezone ( "아시아/자카르타"); $ date-> settimezone ($ jakartatimezone); echo $ date-> 형식 ( "ymd h : i a");

뉴욕이 오전 5 시인 자카르타는 2021 년 11 월 11 일 오후 5시입니다. 그러나 한 달 전, 자카르타는 다음과 같이 뉴욕보다 11 시간이 빨랐습니다.

php $ newyorkTimezone = New DateTimezone ( "America/New_York"); $ date = new DateTime ( "2021-10-11 05:00", $ NewYorkTimeZone); echo $ date-?> 형식 ( "YMD H : I A"); $ jakartatimezone = 새로운 DateTimezone ( "아시아/자카르타"); $ date-> settimezone ($ jakartatimezone); echo $ date-> 형식 ( "ymd h : i a");

PHP는 일광 절약 시간을 자동으로 처리합니다.

현지화

미국의 날짜와 시간을 표시하는 일반적인 방법은 다음과 같습니다.

php $ now = new DateTime (); echo $ now-?> 형식 ( "m/d/y h : i a");

그러나 프랑스의 누군가는 지역보다 더 일반적인 형식을 선호 할 수 있습니다. 그들은“이것은 끔찍하다”고 불평 할 수있다. 첫째, 미국 이외의 사람은 날짜 전 월을 제외하고는 아무도 없습니다. 둘째, 프랑스는 AM 또는 PM을 사용하지 않습니다-그들은 군대와 같은 24 시간 시스템을 사용합니다 (예 : 오후 2시 대신 14:00). 이것이 프랑스 지역 주민들을 만족시키는 것입니다.

php $ now = new DateTime (); echo $ now-?> 형식 ( "d/m/yh : i");

그러나 이것은 특정 국가 또는 지역에 대한 깊은 이해가 필요합니다. 대신 날짜를 현지화 할 수 있습니다. 날짜를 현지화하려면 PHP에 대한 국제화 지원을 설치해야합니다. 우분투에서는이 단계를 수행 할 수 있습니다.

$ sudo apt-get 설치 php-intl

프랑스어로 날짜와 시간을 표시하려면 intldateformatter를 사용할 수 있습니다.

$ locale = "fr_fr.utf-8"; $ Formatter = New IntlDateFormatter ($ locale, intldateformatter :: full, intldateformatter :: short, "Asia/Singapore"); $ date = new DateTime ( "2020-10-10 00:00 UTC"); echo $ formatter-> 형식 ($ date);

프랑스 지역을 IntlDateFormatter의 첫 번째 매개 변수로 전달합니다.
두 번째 매개 변수는 날짜의 형식입니다. 세 번째 매개 변수는 시간 형식입니다. 날짜와 시간을 표시하는 시간대는 네 번째 매개 변수입니다.

intldateformatter :: full 및 intldateformatter :: short 이외에도 일반적으로 사용되는 다른 형식에는 intldateformatter :: none 및 intldateformatter :: long이 있습니다.
및 intldateformatter :: medium.

intldateformatter :: 없음 시간 또는 세 번째 매개 변수를 사용하는 경우 시간을 형식으로 포함하지 않습니다.

$ locale = "fr_fr.utf-8"; $ Formatter = New IntlDateFormatter ($ locale, intldateformatter :: long, intldateformatter :: none, "Asia/Singapore"); $ date = new DateTime ( "2020-10-10 00:00 UTC"); echo $ formatter-> 형식 ($ date);

시간 여행

여행 시간을 보내고 과거와 미래로 돌아 갑시다. 먼저 dateinterval을 이해합시다 :

php $ interval = new dateInterval ( "P4M1W2DT2H5M"); // p 4m 1W 2d t 2h 5m // // p = 주간 간격 (연도, 월, 주, 일) // 4m = 4 개월 // 1w = 1 주 // 2d = 2 일 // // t = 시간 간격 (시간, 분, 초) // 2H = 2 시간 // 5m = 5 분?>

P 및 T는주기 간격 및 시간 간격을 분리하는 데 사용됩니다. 우리가 미래로가는 방법은 다음과 같습니다.

php $ date = new DateTime ( "2021-10-14"); $ interval = new dateinterval ( "p2d"); Echo $ futuredate-> 형식 ( "YMD");

우리가 과거로 돌아갈 수있는 방법은 다음과 같습니다.

php $ date = new DateTime ( "2021-10-14 10:00"); $ interval = new dateinterval ( "pt6h"); echo $ pastdate-> 형식 ( "YMD H : I");

시간 여행을 위해 요일의 이름을 사용하려면 strtotime () 함수의 settimestamp () 메소드와 dateTime 객체를 사용할 수 있습니다.

php $ nexttuesday = strtotime ( "다음 튜토리얼"); $ date = new DateTime ( "2021-10-14"); $ DATE-?> SETTIMESTAMP ($ NEXTTUSSDAY); echo $ date-> 형식 ( "YMD");

PHP 문서에서 strtotime () 매개 변수의 전체 목록을 참조하십시오.

정기적으로 발생하는 날짜 및 시간

캘린더 응용 프로그램의 일반적인 기능은 일주일에 한 번 또는 일주일에 한 번 반복 알림을 설정하는 것입니다. DatePeriod를 사용하여 시간을 나타낼 수 있습니다.

php $ start = new DateTime ( "2021-10-01"); $ end = new DateTime ( "2021-11-01"); $ interval = new dateinterval ( "p1w"); // 1 주 $ 범위 = 새로운 datePeriod ($ start, $ interval, $ end); // 2021 년 10 월 1 일부터 시작 (포함), 1 주마다 건너 뛰기 // 2021 년 11 월 1 일까지 (제외) foreach ($ date as $ date) { echo $ date-?> 형식 ( "ymd"); } // 2022-10-01 // 2022-10-08 // 2022-10-15 // 2022-10-22 // 2022-10-29

며칠 전에?

트위터와 같은 서비스가 누군가의 x 분/시간/일 등을 보여줄 것임을 알고 있습니까? 현재 시간과 작업이 발생하는 시간 사이의 경과 시간을 계산하여이를 수행 할 수 있습니다.

php $ date = new DateTime ( "2022-10-30"); $ date2 = New DateTime ( "2022-10-25"); $ date3 = New DateTime ( "2022-10-10"); $ date4 = 새로운 DateTime ( "2022-03-30"); $ date5 = 새로운 DateTime ( "2020-03-30"); 함수 get_period_ago ($ enddate, $ startDate) { $ dateInterVal = $ endDate-?> diff ($ startDate); if ($ dateinterval-> envert == 1) { if ($ dateinterval-> y> 0) { $ dateinterval-> y를 반환합니다. } if ($ dateInterVal-> m> 0) { $ dateinterval-> m. } if ($ dateinterval-> d> 7) { return (int) ($ dateinterval-> d / 7); } if ($ dateInterVal-> d> 0) { $ DateInterval-> d. } } } echo get_period_ago ($ date, $ date2); echo get_period_ago ($ date, $ date3); echo get_period_ago ($ date, $ date4); echo get_period_ago ($ date, $ date5);

diff () 메소드에서 dateinterval 객체를 얻은 후, 반전 속성을 확인하여 $ startDate 변수가 과거에 있는지 확인하십시오. 그런 다음 y, m 및 d 속성을 확인하십시오.

Dateinterval 객체 속성의 전체 목록은 PHP 문서에서 찾을 수 있습니다.

다음 단계?

이제 날짜와 시간을 처리 할 때 일반적으로 사용되는 PHP 코드 스 니펫을 마스터했습니다. 현재 날짜와 시간을 가져와야합니까? 어쩌면 날짜를 어떻게 든 형식으로 형식화하거나 현지 시간대를 포함 시키거나 날짜를 비교해야 할 수도 있습니다. 이 모든 것이 여기 있습니다!

물론, 우리는 달력 관련 기능 등의 날짜와 시간에 대한 더 많은 방법과 기능을 논의하지 않았습니다. 더 많은 사용 사례 및 예제는 언제든지 PHP 설명서의 날짜 및 시간 섹션을 확인하십시오.

위 내용은 PHP 날짜 및 시간 레시피의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

vue 3 vue 3 Apr 02, 2025 pm 06:32 PM

그것은#039; VUE 팀에게 그것을 끝내는 것을 축하합니다. 나는 그것이 막대한 노력과 오랜 시간이라는 것을 알고 있습니다. 모든 새로운 문서도 있습니다.

Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축 Redwood.js 및 동물 군을 사용하여 이더 리움 앱 구축 Mar 28, 2025 am 09:18 AM

최근 Bitcoin의 가격이 20k 달러가 넘는 USD가 최근에 등반되면서 최근 30k를 끊었으므로 Ethereum을 만드는 데 깊이 다이빙을 할 가치가 있다고 생각했습니다.

브라우저에서 유효한 CSS 속성 값을 얻을 수 있습니까? 브라우저에서 유효한 CSS 속성 값을 얻을 수 있습니까? Apr 02, 2025 pm 06:17 PM

나는 누군가이 매우 합법적 인 질문으로 글을 썼습니다. Lea는 브라우저에서 유효한 CSS 속성 자체를 얻는 방법에 대해 블로그를 작성했습니다. 이는 이와 같습니다.

끈적 끈적한 포지셔닝 및 대시 Sass가있는 쌓인 카드 끈적 끈적한 포지셔닝 및 대시 Sass가있는 쌓인 카드 Apr 03, 2025 am 10:30 AM

다른 날, 나는 Corey Ginnivan의 웹 사이트에서 스크롤 할 때 카드 모음이 서로 쌓이는 것을 발견했습니다.

CI/CD에 약간 CI/CD에 약간 Apr 02, 2025 pm 06:21 PM

"웹 사이트"는 "모바일 앱"보다 더 잘 맞지만 Max Lynch 의이 프레임이 마음에 듭니다.

반응 형 디자인을위한 브라우저 비교 반응 형 디자인을위한 브라우저 비교 Apr 02, 2025 pm 06:25 PM

목표가 귀하의 사이트를 동시에 다른 크기로 표시하는 이러한 데스크탑 앱이 많이 있습니다. 예를 들어, 글을 쓸 수 있습니다

WordPress 블록 편집기에서 Markdown 및 현지화 사용 WordPress 블록 편집기에서 Markdown 및 현지화 사용 Apr 02, 2025 am 04:27 AM

WordPress 편집기에서 사용자에게 직접 문서를 표시 해야하는 경우 가장 좋은 방법은 무엇입니까?

플렉스 레이아웃의 자주색 슬래시 영역이 잘못된 '오버플로 공간'으로 간주되는 이유는 무엇입니까? 플렉스 레이아웃의 자주색 슬래시 영역이 잘못된 '오버플로 공간'으로 간주되는 이유는 무엇입니까? Apr 05, 2025 pm 05:51 PM

플렉스 레이아웃의 보라색 슬래시 영역에 대한 질문 플렉스 레이아웃을 사용할 때 개발자 도구 (d ...)와 같은 혼란스러운 현상이 발생할 수 있습니다.

See all articles