PHP - strftime() :: 로케일 설정에 따라 현지 시간 / 날짜 형식을 지정합니다.

PHP 함수

strftime

요약

로케일 설정에 따라 현지 시간 / 날짜 형식을 지정합니다.

함수 원형

 strftime ( string $format , int|null $timestamp = null ) : string|false

파라미터

$format
날짜 형식을 지정합니다.
자세한 형식은 strftime을 참고하세요.

날짜 형식

형식설명
%a일요일부터 토요일까지의 약식 텍스트 표현
%A일요일부터 토요일까지의 전체 텍스트 표현
%d월의 두 자리 일 (앞에 0이 있음) 01-31
%e한 자리 앞에 공백이있는 날짜. Windows에 설명 된대로 구현되지 않았습니다. 자세한 내용은 아래를 참조하십시오. 1에서 31
%j일, 3 자리 숫자 앞에 0이 001-366
%uISO-8601 요일 1 (월요일)부터 7 (일요일)까지의 숫자 표현
%w요일 0 (일요일)부터 6 (토요일)까지의 숫자 표현

주 형식

형식설명
%U첫 번째 일요일을 첫 번째 주 13으로 시작하여 해당 연도의 주 번호 (해당 연도의 13 번째 주)
%VISO-8601 : 1988 해당 연도의 첫 번째 주부터 시작하여 최소 4 개의 주중으로 시작하며 월요일은 01부터 53까지의 주 시작입니다 (53은 겹치는 주를 나타냄).
%W첫 번째 월요일을 첫 번째 주 46으로 시작하는 한 해의주의 숫자 표시 (월요일로 시작하는 연도의 46 번째 주)

월 형식

형식설명
%bJan에서 Dec까지의 로케일을 기반으로하는 축약 된 월 이름
%B1 월부터 12 월까지의 로케일을 기반으로 한 전체 월 이름
%h로케일 (%b의 별칭)을 기반으로하는 축약 된 월 이름입니다. Jan-Dec
%m01 (1월)부터 12 (12월)까지의 두 자리 숫자 표현

년 형식

형식설명
%C20 세기의 세기를 나타내는 두 자리 숫자 (연도를 100으로 나눈 값, 정수로 잘림) 19
%gISO-8601 : 1988 표준에 따른 연도의 두 자리 표현 (%V 참조) 예 : 2009 년 1 월 6 일 주를 나타내는 09
%G %g의 전체 4 자리 버전 예 : 2008 년 1 월 3 일 주
%y연도의 두 자리 표현 예 : 2009는 09, 1979는 79
%Y연도를 4 자리로 표시 예 : 2038

시간 형식

형식설명
%H00부터 23까지 24 시간 형식의 두 자리 시간 표시
%k시간 (24 시간 형식), 0부터 23까지의 한 자리 앞에 공백이 있음
%I01에서 12까지의 12 시간 형식으로 시간을 두 자리로 표현
%l (소문자 'L')12 시간 형식의 시간, 1에서 12까지의 한 자리 앞에 공백이 있음
%M00부터 59까지의 두 자리 숫자 표현
%p대문자 'AM'또는 'PM'은 주어진 시간을 기준으로합니다. 예 : AM 00:31, PM 22:23
P주어진 시간을 기준으로 소문자 'am'또는 'pm' 예 : 오전 00:31, pm 22:23
%r%I, %M, %S, %p, 형식과 동일합니다. 예 : 21:34:17의 경우 PM 09:34:17
%R%H, %M과 동일합니다. 예 : 오전 12:35에는 00:35, 오후 4:44에는 16:44
%S00에서 59까지의 두 번째 숫자 표현
%T%H, %M, %S와 동일. 예 : 오후 09:34:17의 경우 21:34:17
%X날짜없이 로케일을 기반으로하는 선호 시간 표시 예 : 03:59:16 또는 15:59:16
%z표준 시간대 오프셋. Windows에 설명된대로 구현되지 않았습니다. 자세한 내용은 아래를 참조하십시오. 예 : 미국 동부 표준시의 경우 -0500
%Z표준 시간대 약어. Windows에 설명 된대로 구현되지 않았습니다. 자세한 내용은 아래를 참조하십시오. 예 : 동부 표준시의 경우 EST

시간 및 날짜 스탬프 형식

형식설명
%c로케일에 따른 선호 날짜 및 시간 스탬프 예 : 2009 년 2 월 5 일 화요일 오전 12:45:10에 2009 년 2 월 5 일 00:45:10
%D"% m / % d / % y"와 동일 예 : 2009 년 2 월 5 일은 02/05/09
%F"% Y- % m- % d"와 동일 (일반적으로 데이터베이스 날짜 스탬프에 사용됨) 예 : 2009 년 2 월 5 일의 2009-02-05
%sUnix Epoch 타임 스탬프 (time () 함수와 동일) 예 : 1979 년 9 월 10 일 오전 08:40:00의 경우 305815200
%x시간없이 로케일을 기반으로하는 선호 날짜 표현 예 : 2009 년 2 월 5 일은 02/05/09

기타 형식

형식설명
%n개행 문자 ( "\ n")
%t탭 문자 ( "\ t")
%%리터럴 백분율 문자 ( "%")

주의할 사항
ISO-9899 는 1999와 달리 Sun Solaris는 일요일을 1로 시작합니다.
따라서 %u가 이 설명서에 설명된대로 작동하지 않을 수 있습니다.

Windows 제한 사항
%e 수정자는 이 함수의 Windows 구현에서 지원되지 않습니다.
이 값을 얻기 위해 %#d 수정자를 대신 사용할 수 있습니다.
아래 예제는 크로스 플랫폼 호환 함수를 작성하는 방법을 보여줍니다.
%z%Z 수정자는 모두 오프셋이나 약어 대신 표준 시간대 이름을 반환합니다.

macOS 제한사항
%P 수정자는이 함수의 macOS 구현에서 지원되지 않습니다.

$timestamp
선택적 타임 스탬프 매개 변수는 타임 스탬프가 생략되거나 null 인 경우 기본값이 현재 로컬시간 인 int Unix 타임 스탬프입니다.
즉, 기본값은 time()입니다.

설명

PHP 4 버전부터 제공됩니다.

로케일 설정에 따라 시간 및 / 또는 날짜 형식을 지정합니다.
월 및 요일 이름과 기타 언어 종속 문자열은 setlocale로 설정된 현재 로케일을 따릅니다.

모든 변환 지정자가 C 라이브러리에서 지원되는 것은 아닙니다.
이 경우 PHP의 strftime에서 지원하지 않습니다.

또한 모든 플랫폼이 음수 타임 스탬프를 지원하는 것은 아니므로 날짜 범위는 Unix 시대 이전으로 제한 될 수 있습니다.
이는 %e, %T, %R%D (및 기타) (및 1970 년 1 월 1 일 이전 날짜)가 Windows, 일부 Linux 배포 및 기타 몇 가지 운영 체제에서 작동하지 않음을 의미합니다.
Windows 시스템의 경우 지원되는 변환 지정자에 대한 전체 개요는 MSDN에서 찾을 수 있습니다.

주어진 타임 스탬프 또는 타임 스탬프가 제공되지 않은 경우 현재 현지 시간을 사용하여 형식에 따라 형식이 지정된 문자열을 반환합니다.
월 및 요일 이름과 기타 언어 종속 문자열은 setlocale로 설정된 현재 로케일을 따릅니다.
형식이 비어 있거나 지원되지 않는 변환 지정자가 포함되어 있거나 반환 된 문자열의 길이가 4095보다 큰 경우 함수는 false를 반환합니다.

날짜 / 시간 함수에 대한 모든 호출은 시간대가 유효하지 않은 경우 E_NOTICE를 생성하고 시스템 설정 또는 TZ 환경 변수를 사용하는 경우 E_STRICT 또는 E_WARNING 메시지를 생성합니다. date_default_timezone_set도 참조하십시오.

출력은 기본 C 라이브러리에 따라 다르기 때문에 일부 변환 지정자는 지원되지 않습니다.
Windows에서 알 수 없는 변환 지정자를 제공하면 5개의 E_WARNING 메시지가 생성되고 false가 반환됩니다.
다른 운영 체제에서는 E_WARNING 메시지를 받지 못할 수 있으며 출력에는 변환되지 않은 변환 지정자가 포함될 수 있습니다.

PHP 8.0 부터 $timestampnull을 전달할 수 있습니다.

ISO 8601 : 1988 주 번호를 기반으로하는 %G%V는 번호 체계를 완전히 이해하지 못한 경우 예상치 못한 (올바른) 결과를 제공 할 수 있습니다.
이 매뉴얼 페이지의 %V 예제를 참조하십시오.

예제 1

setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");

예제 2

/*     December 2002 / January 2003
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Outputs: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Outputs: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Outputs: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Outputs: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";



/*     December 2004 / January 2005
ISOWk  M   Tu  W   Thu F   Sa  Su
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Outputs: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Outputs: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Outputs: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";


예제 3

// Jan 1: results in: '%e%1%' (%%, e, %%, %e, %%)
$format = '%%e%%%e%%';

// Check for Windows to find and replace the %e
// modifier correctly
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
    $format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format);
}

echo strftime($format);

예제 4

// Describe the formats.
$strftimeFormats = array(
    'A' => 'A full textual representation of the day',
    'B' => 'Full month name, based on the locale',
    'C' => 'Two digit representation of the century (year divided by 100, truncated to an integer)',
    'D' => 'Same as "%m/%d/%y"',
    'E' => '',
    'F' => 'Same as "%Y-%m-%d"',
    'G' => 'The full four-digit version of %g',
    'H' => 'Two digit representation of the hour in 24-hour format',
    'I' => 'Two digit representation of the hour in 12-hour format',
    'J' => '',
    'K' => '',
    'L' => '',
    'M' => 'Two digit representation of the minute',
    'N' => '',
    'O' => '',
    'P' => 'lower-case "am" or "pm" based on the given time',
    'Q' => '',
    'R' => 'Same as "%H:%M"',
    'S' => 'Two digit representation of the second',
    'T' => 'Same as "%H:%M:%S"',
    'U' => 'Week number of the given year, starting with the first Sunday as the first week',
    'V' => 'ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week',
    'W' => 'A numeric representation of the week of the year, starting with the first Monday as the first week',
    'X' => 'Preferred time representation based on locale, without the date',
    'Y' => 'Four digit representation for the year',
    'Z' => 'The time zone offset/abbreviation option NOT given by %z (depends on operating system)',
    'a' => 'An abbreviated textual representation of the day',
    'b' => 'Abbreviated month name, based on the locale',
    'c' => 'Preferred date and time stamp based on local',
    'd' => 'Two-digit day of the month (with leading zeros)',
    'e' => 'Day of the month, with a space preceding single digits',
    'f' => '',
    'g' => 'Two digit representation of the year going by ISO-8601:1988 standards (see %V)',
    'h' => 'Abbreviated month name, based on the locale (an alias of %b)',
    'i' => '',
    'j' => 'Day of the year, 3 digits with leading zeros',
    'k' => 'Hour in 24-hour format, with a space preceding single digits',
    'l' => 'Hour in 12-hour format, with a space preceding single digits',
    'm' => 'Two digit representation of the month',
    'n' => 'A newline character ("\n")',
    'o' => '',
    'p' => 'UPPER-CASE "AM" or "PM" based on the given time',
    'q' => '',
    'r' => 'Same as "%I:%M:%S %p"',
    's' => 'Unix Epoch Time timestamp',
    't' => 'A Tab character ("\t")',
    'u' => 'ISO-8601 numeric representation of the day of the week',
    'v' => '',
    'w' => 'Numeric representation of the day of the week',
    'x' => 'Preferred date representation based on locale, without the time',
    'y' => 'Two digit representation of the year',
    'z' => 'Either the time zone offset from UTC or the abbreviation (depends on operating system)',
    '%' => 'A literal percentage character ("%")',
);

// Results.
$strftimeValues = array();

// Evaluate the formats whilst suppressing any errors.
foreach($strftimeFormats as $format => $description){
    if (False !== ($value = @strftime("%{$format}"))){
        $strftimeValues[$format] = $value;
    }
}

// Find the longest value.
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));

// Report known formats.
foreach($strftimeValues as $format => $value){
    echo "Known format   : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}

// Report unknown formats.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){
    echo "Unknown format : '{$format}'   ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}

결과 4

Known format   : 'A' = 'Friday'            ( A full textual representation of the day )
Known format   : 'B' = 'December'          ( Full month name, based on the locale )
Known format   : 'H' = '11'                ( Two digit representation of the hour in 24-hour format )
Known format   : 'I' = '11'                ( Two digit representation of the hour in 12-hour format )
Known format   : 'M' = '24'                ( Two digit representation of the minute )
Known format   : 'S' = '44'                ( Two digit representation of the second )
Known format   : 'U' = '48'                ( Week number of the given year, starting with the first Sunday as the first week )
Known format   : 'W' = '48'                ( A numeric representation of the week of the year, starting with the first Monday as the first week )
Known format   : 'X' = '11:24:44'          ( Preferred time representation based on locale, without the date )
Known format   : 'Y' = '2010'              ( Four digit representation for the year )
Known format   : 'Z' = 'GMT Standard Time' ( The time zone offset/abbreviation option NOT given by %z (depends on operating system) )
Known format   : 'a' = 'Fri'               ( An abbreviated textual representation of the day )
Known format   : 'b' = 'Dec'               ( Abbreviated month name, based on the locale )
Known format   : 'c' = '12/03/10 11:24:44' ( Preferred date and time stamp based on local )
Known format   : 'd' = '03'                ( Two-digit day of the month (with leading zeros) )
Known format   : 'j' = '337'               ( Day of the year, 3 digits with leading zeros )
Known format   : 'm' = '12'                ( Two digit representation of the month )
Known format   : 'p' = 'AM'                ( UPPER-CASE "AM" or "PM" based on the given time )
Known format   : 'w' = '5'                 ( Numeric representation of the day of the week )
Known format   : 'x' = '12/03/10'          ( Preferred date representation based on locale, without the time )
Known format   : 'y' = '10'                ( Two digit representation of the year )
Known format   : 'z' = 'GMT Standard Time' ( Either the time zone offset from UTC or the abbreviation (depends on operating system) )
Known format   : '%' = '%'                 ( A literal percentage character ("%") )
Unknown format : 'C'                       ( Two digit representation of the century (year divided by 100, truncated to an integer) )
Unknown format : 'D'                       ( Same as "%m/%d/%y" )
Unknown format : 'E'
Unknown format : 'F'                       ( Same as "%Y-%m-%d" )
Unknown format : 'G'                       ( The full four-digit version of %g )
Unknown format : 'J'
Unknown format : 'K'
Unknown format : 'L'
Unknown format : 'N'
Unknown format : 'O'
Unknown format : 'P'                       ( lower-case "am" or "pm" based on the given time )
Unknown format : 'Q'
Unknown format : 'R'                       ( Same as "%H:%M" )
Unknown format : 'T'                       ( Same as "%H:%M:%S" )
Unknown format : 'V'                       ( ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week )
Unknown format : 'e'                       ( Day of the month, with a space preceding single digits )
Unknown format : 'f'
Unknown format : 'g'                       ( Two digit representation of the year going by ISO-8601:1988 standards (see %V) )
Unknown format : 'h'                       ( Abbreviated month name, based on the locale (an alias of %b) )
Unknown format : 'i'
Unknown format : 'k'                       ( Hour in 24-hour format, with a space preceding single digits )
Unknown format : 'l'                       ( Hour in 12-hour format, with a space preceding single digits )
Unknown format : 'n'                       ( A newline character ("\n") )
Unknown format : 'o'
Unknown format : 'q'
Unknown format : 'r'                       ( Same as "%I:%M:%S %p" )
Unknown format : 's'                       ( Unix Epoch Time timestamp )
Unknown format : 't'                       ( A Tab character ("\t") )
Unknown format : 'u'                       ( ISO-8601 numeric representation of the day of the week )
Unknown format : 'v'

참고

https://phpman.ml/strftime
https://www.php.net/manual/en/function.strftime.php

관련 함수

setlocale
mktime
strptime
gmstrftime


copyright phpman all right reserved
인스턴트코더 uses phpman's content under contract.


인스턴트코더에 개발 의뢰를 요청하시려면 먼저 FAQ를 읽어보시고, 적합하다고 판단하시면 [email protected]로 연락해 주세요.

좋은 웹페이지 즐겨찾기