Date Formats

이 페이지에서는 strtotime(), DateTimedate_create() 파서가 이해하는 다양한 날짜 형식에 대해 설명합니다.

Used Symbols

설명 Formats Examples
daysuf "st" | "nd" | "rd" | "th"  
dd ([0-2]?[0-9] | "3"[01]) daysuf? "7th", "22nd", "31"
DD "0" [0-9] | [1-2][0-9] | "3" [01] "07", "31"
m 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII"  
M 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec'  
mm "0"? [0-9] | "1"[0-2] "0", "04", "7", "12"
MM "0" [0-9] | "1"[0-2] "00", "04", "07", "12"
y [0-9]{1,4} "00", "78", "08", "8", "2008"
yy [0-9]{2} "00", "08", "78"
YY [0-9]{4} "2000", "2008", "1978"

Localized Notations

설명 Format Examples
American month and day mm "/" dd "5/12", "10/27"
American month, day and year mm "/" dd "/" y "12/22/78", "1/17/2006", "1/17/6"
Four digit year, month and day with slashes YY "/" mm "/" dd "2008/6/30", "1978/12/22"
Four digit year and month (GNU) YY "-" mm "2008-6", "2008-06", "1978-12"
Year, month and day with dashes y "-" mm "-" dd "2008-6-30", "78-12-22", "8-6-21"
Day, month and four digit year, with dots, tabs or dashes dd [.\t-] mm [.-] YY "30-6-2008", "22.12.1978"
Day, month and two digit year, with dots or tabs dd [.\t] mm "." yy "30.6.08", "22\t12.78"
Day, textual month and year dd ([ \t.-])* m ([ \t.-])* y "30-June 2008", "22DEC78", "14 III 1879"
Textual month and four digit year (Day reset to 1) m ([ \t.-])* YY "June 2008", "DEC1978", "March 1879"
Four digit year and textual month (Day reset to 1) YY ([ \t.-])* m "2008 June", "1978-XII", "1879.MArCH"
Textual month, day and year m ([ .\t-])* dd [,.stndrh\t ]+ y "July 1st, 2008", "April 17, 1790", "May.9,78"
Textual month and day m ([ .\t-])* dd [,.stndrh\t ]* "July 1st,", "Apr 17", "May.9"
Day and textual month d ([ .\t-])* m "1 July", "17 Apr", "9.May"
Month abbreviation, day and year M "-" DD "-" y "May-09-78", "Apr-17-1790"
Year, month abbreviation and day y "-" M "-" DD "78-Dec-22", "1814-MAY-17"
Year (and just the year) YY "1978", "2008"
Textual month (and just the month) m "March", "jun", "DEC"

ISO8601 Notations

설명 Format Examples
Eight digit year, month and day YY MM DD "15810726", "19780417", "18140517"
Four digit year, month and day with slashes YY "/" MM "/" DD "2008/06/30", "1978/12/22"
Two digit year, month and day with dashes yy "-" MM "-" DD "08-06-30", "78-12-22"
Four digit year with optional sign, month and day [+-]? YY "-" MM "-" DD "-0002-07-26", "+1978-04-17", "1814-05-17"

메모: y 및 yy 형식의 경우 100년 미만의 연도는 y 또는 yy 기호가 사용될 때 특별한 방식으로 처리됩니다. 연도가 0(포함)에서 69(포함) 범위에 속하는 경우 2000이 추가됩니다. 연도가 70(포함)에서 99(포함) 범위에 속하는 경우 1900이 추가됩니다. 이는 "00-01-01"이 "2000-01-01"로 해석됨을 의미합니다.

메모: "일, 월 및 두 자리 연도, 점 또는 탭 포함" 형식(dd [.\t] mm "." yy)은 해당 연도 이외의 연도 값 61(포함)에서 99(포함)에 대해서만 작동합니다. 형식 "HH [.:] MM [.:] SS"가 우선합니다.

메모: "연도(연도만)" 형식은 시간 문자열이 이미 있는 경우에만 작동합니다. 그렇지 않으면 이 형식은 HH MM으로 인식됩니다.

주의 dd 및 DD 형식을 오버플로 및 언더플로할 수 있습니다. Day 0은 이전 달의 마지막 날을 의미하는 반면, 오버플로는 다음 달로 계산됩니다. 따라서 "2008-08-00"은 "2008-07-31"에 해당하고 "2008-06-31"은 "2008-07-01"에 해당합니다(6월에는 30일만 있음).

일 범위는 위의 정규식에 표시된 대로 0-31로 제한됩니다. 따라서 "2008-06-32"는 예를 들어 유효한 날짜 문자열이 아닙니다.

mm 및 MM 형식을 값 0으로 언더플로할 수도 있습니다. 월 값이 0이면 전년도의 12월을 의미합니다. 예를 들어 "2008-00-22"는 "2007-12-22"와 같습니다.

앞의 두 가지 사실을 결합하고 일과 월을 모두 언더플로하면 다음이 발생합니다. "2008-00-00"이 먼저 "2007-12-00"으로 변환된 다음 "2007-11-30"으로 변환됩니다. . 이것은 문자열 "0000-00-00"에서도 발생하며 "-0001-11-30"(ISO 8601 달력의 연도 -1, 역산 그레고리력의 기원전 2년)으로 변환됩니다.