상세 컨텐츠

본문 제목

[PHP]strtotime()_날짜, 시간 계산(더하기/빼기) 기능

컴퓨터+IT

by 아르테미쓰 2023. 7. 28. 17:14

본문

https://www.w3schools.com/php/func_date_strtotime.asp

 

PHP strtotime() Function

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

 

정의 및 사용법

strtotime() 함수는 영어 텍스트 datetime을 Unix 타임스탬프(1970년 1월 1일 00:00:00 GMT 이후의 초 수)로 구문 분석합니다.

 

참고 : 연도가 두 자리 형식으로 지정된 경우 0-69 사이의 값은 2000-2069에 매핑되고 70-100 사이의 값은 1970-2000에 매핑됩니다.

 

참고 : m/d/y 또는 d-m-y 형식의 날짜에 유의하십시오. 구분 기호가 슬래시(/)이면 미국식 m/d/y로 가정합니다. 구분 기호가 대시(-) 또는 점(.)이면 유럽식 d-m-y 형식이 사용됩니다. 잠재적 오류를 방지하려면 가능한 경우 YYYY-MM-DD 날짜 또는 date_create_from_format()을 사용해야 합니다.

 

[예제]
<?php
echo(strtotime("now") . "<br>");
// ▧ 결과값 : 1589972726

echo(strtotime("3 October 2005") . "<br>");
// ▧ 결과값 : 1128297600

echo(strtotime("+5 hours") . "<br>");
// ▧ 결과값 : 1589990726

echo(strtotime("+1 week") . "<br>");
// ▧ 결과값 : 1590577526

echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "<br>");
// ▧ 결과값 : 1590861931

echo(strtotime("next Monday") . "<br>");
// ▧ 결과값 : 1590364800

echo(strtotime("last Sunday"));
// ▧ 결과값 : 1589673600
?>

 

[구문]

strtotime(time, now);

 

 

[매개변수]

time - 필수. 날짜/시간 문자열을 지정합니다.
now - 선택. 상대 날짜 계산의 기준으로 사용되는 타임스탬프를 지정합니다.

 

 

[기술적 세부 사항]

Return Value : 성공 시 타임스탬프를 반환합니다. FALSE값은 실패

PHP Version : 4+

PHP Changelog:
PHP 5.3.0: 이번 주, 이전 주, 지난 주 및 다음 주와 같은 상대 시간 형식은 이제 현재 날짜/시간에 상대적인 7일 기간이 아니라 월요일부터 일요일까지의 주 기간을 해석합니다.

PHP 5.3.0: 이제 24:00은 유효한 형식입니다.

PHP 5.2.7: 이전 버전에서는 해당 월의 첫 번째 날인 해당 월의 특정 요일을 요청하면 반환된 타임스탬프에 1주를 잘못 추가했습니다. 이것은 지금 수정되었습니다

PHP 5.1.0: 실패 시 FALSE를 반환하고(이전 버전은 -1 반환) E_STRICT 및 E_NOTICE 표준 시간대 오류를 발생시킵니다.

PHP 5.0.2: 이제 "현재" 및 오늘 자정이 아닌 현재 시간을 기준으로 다른 상대 시간을 올바르게 계산합니다.

PHP 5.0.0: 마이크로초 허용(무시됨)

 

 

strtotime() 기능은 날짜를 계산해야 하는 경우 현재로부터 전/후 또는 지정된 일시(시각)로부터 전/후를 계산할 때 유용하게 사용할 수 있습니다.
[예제]
<?php
$t_conv = strtotime("Now");
echo "현재 일시 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 현재 일시 : 2023-07-28 07:50:24

$t_conv = strtotime("-1 seconds");
echo "현재로부터 1초 전 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 현재로부터 1초 전 : 2023-07-28 07:50:23

$t_conv = strtotime("+1 minutes");
echo "현재로부터 1분 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 현재로부터 1분 뒤 : 2023-07-28 07:51:24

$t_conv = strtotime("+1 hours");
echo "현재로부터 1시간 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 현재로부터 1시간 뒤 : 2023-07-28 08:50:24

$t_conv = strtotime("+1 days");
echo "현재로부터 1일 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : ​현재로부터 1일 뒤 : 2023-07-29 07:50:24

$t_conv = strtotime("+1 week");
echo "현재로부터 1주 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 현재로부터 1주 뒤 : 2023-08-04 07:50:24

$t_conv = strtotime("+1 months");
echo "현재로부터 1달 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 현재로부터 1달 뒤 : 2023-08-28 07:50:24

$t_conv = strtotime("+1 years");
echo "현재로부터 1년 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 현재로부터 1년 뒤 : 2024-07-28 07:50:24

$t_conv = strtotime("+2 years +5 months +2 days +10 hours");
echo "현재로부터 2년 5개월 2일 10시간 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 현재로부터 2년 5개월 2일 10시간 뒤 : 2025-12-30 17:50:24

$t_conv = strtotime("2023-01-01");
echo "2023년 1월 1일 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 2023년 1월 1일 : 2023-01-01 00:00:00

$t_conv = strtotime("2023-01-01 +1 months");
echo "2023년 1월 1일을 기준으로 1달 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 2023년 1월 1일을 기준으로 1달 뒤 : 2023-02-01 00:00:00

​$t_conv = strtotime("2023/01/01 +2 months");
echo "2023년 1월 1일을 기준으로 2달 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 2023년 1월 1일을 기준으로 2달 뒤 : 2023-03-01 00:00:00

​$t_conv = strtotime("20230101 +1 years");
echo "2023년 1월 1일을 기준으로 3달 뒤 : ".date("Y-m-d H:i:s", $t_conv);
// ▧ 결과값 : 2023년 1월 1일을 기준으로 3달 뒤 : 2024-01-01 00:00:00 ?>

 

 

 

 

 

관련글 더보기

댓글 영역