PHP 날짜 및 시간
PHP date() 함수는 날짜 또는 시간 형식을 지정하는 데 사용됩니다.
timestamp(timestamp), 일반적으로 시퀀스 특정 시간을 고유하게 식별하는 문자
형식화된 날짜 : date() 함수는 지정된 형식에 따라 매개변수 타임스탬프에 의해 생성된 문자열을 반환합니다.
구문
날짜(형식, 타임스탬프)
| <🎜> <🎜>설명<🎜><🎜> | ||||||
필수, 타임스탬프 형식을 지정합니다. | |||||||
<🎜 ><🎜> 타임스탬프<🎜> <🎜> | 선택 사항, 타임스탬프를 지정합니다. 기본값은 현재 시간과 날짜입니다. |
☆ 타임스탬프는 특정 이벤트가 발생한 시간과 날짜를 나타내는 일련의 문자입니다.
형식 문자열은 다음을 인식할 수 있습니다. 형식 매개변수 문자열
| <🎜><🎜> 설명<🎜><🎜> | 반환 값 예 <🎜> | |||||||||||||||
日 | --- | --- | |||||||||||||||
d | 월의 날짜, 앞에 0이 붙은 2자리 숫자 | 01 ~ 31 | |||||||||||||||
요일, 텍스트 표현, 3글자 | 월~일 | ||||||||||||||||
j | 월의 날짜, 앞에 0이 없습니다 | 1 ~ 31 |
l("L"的小写字母) | 星期几,完整的文本格式 | Sunday 到 Saturday |
N | ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加) | 1(表示星期一)到 7(表示星期天) |
S | 每月天数后面的英文后缀,2 个字符 | st,nd,rd 或者 th。可以和 j 一起用 |
w | 星期中的第几天,数字表示 | 0(表示星期天)到 6(表示星期六) |
z | 年份中的第几天 | 0 到 365 |
星期 | --- | --- |
W | ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) | 例如:42(当年的第 42 周) |
月 | --- | --- |
F | 月份,完整的文本格式,例如 January 或者 March | January 到 December |
m | 数字表示的月份,有前导零 | 01 到 12 |
M | 三个字母缩写表示的月份 | Jan 到 Dec |
n | 数字表示的月份,没有前导零 | 1 到 12 |
t | 给定月份所应有的天数 | 28 到 31 |
年 | --- | --- |
L | 是否为闰年 | 如果是闰年为 1,否则为 0 |
o | ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加) | Examples: 1999 or 2003 |
Y | 4 位数字完整表示的年份 | 例如:1999 或 2003 |
y | 2 位数字表示的年份 | 例如:99 或 03 |
时间 | --- | --- |
a | 小写的上午和下午值 | am 或 pm |
A | 大写的上午和下午值 | AM 或 PM |
B | Swatch Internet 标准时 | 000 到 999 |
g | 小时,12 小时格式,没有前导零 | 1 到 12 |
G | 小时,24 小时格式,没有前导零 | 0 到 23 |
h | 小时,12 小时格式,有前导零 | 01 到 12 |
H | 小时,24 小时格式,有前导零 | 00 到 23 |
i | 有前导零的分钟数 | 00 到 59> |
s | 秒数,有前导零 | 00 到 59> |
u | 毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函数总是返回000000 因为它只接受 integer 参数, 而 DateTime::format() 才支持毫秒。 | 示例: 654321 |
时区 | --- | --- |
e | 时区标识(PHP 5.1.0 新加) | 例如:UTC,GMT,Atlantic/Azores |
I | 是否为夏令时 | 如果是夏令时为 1,否则为 0 |
O | 与格林威治时间相差的小时数 | 例如:+0200 |
P | 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) | 例如:+02:00 |
T | 本机所在的时区 | 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如"Eastern Standard Time",中文版会显示"中国标准时间")。 |
Z | 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 | -43200 到 43200 |
完整的日期/时间 | --- | --- |
c | ISO 8601 格式的日期(PHP 5 新加) | 2004-02-12T15:19:21+00:00 |
r | RFC 822 格式的日期 | 例如:Thu, 21 Dec 2000 16:01:07 +0200 |
U | 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 | 参见 time() |
PHP date() 날짜 형식 지정
date() 함수의 첫 번째 필수 매개 변수인 format은 날짜/시간 형식을 지정하는 방법을 지정합니다.
사용 가능한 문자는 다음과 같습니다.
d - 일(01 - 31)을 나타냅니다.
m - 월(01 - 12)을 나타냅니다.
Y - 연도(4자리)를 나타냅니다.
형식 매개변수에 사용할 수 있는 모든 문자 목록을 보려면 PHP 날짜 참조 매뉴얼, date() 함수를 참조하세요.
문자 사이에 "/", "." 또는 "-"와 같은 다른 문자를 삽입하여 추가 서식을 추가할 수 있습니다.
예
<?php echo date("Y/m/d") . "<br>"; echo date("Y.m.d") . "<br>"; echo date("Y-m-d"); ?>
프로그램 실행 결과:
2016/10/09
2016.10.09
2016-10-09
다음 문자는 일반적으로 시간에 사용됩니다.
· h - 앞에 0이 붙은 12 시간 시간 형식
· i - 앞에 0이 있는 분
· s - 앞에 0이 있는 초(00 -59)
· a - 소문자 정오 및 오후(am 또는 pm)
예
다음 예에서는 현재 시간을 지정된 형식으로 출력합니다.
<?php echo date ("H:i:sa"); ?>
프로그램 실행 결과:
15:53:06pm
☆ PHP date() 함수는 서버의 현재 시간/날짜를 반환합니다
시간대 가져오기
코드에서 반환된 시간이 정확하지 않은 경우 서버가 다른 국가에 있거나 다른 국가에 있을 수 있습니다. 다른 시간대로 설정하세요.
따라서 특정 위치를 기준으로 정확한 시간이 필요한 경우 사용할 시간대를 설정할 수 있습니다.
다음 예에서는 시간대를 "Asia/Shanghai"로 설정한 후 지정된 형식으로 현재 시간을 출력합니다.
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 date_default_timezone_set("Asia/Shanghai"); echo "当前时间是 " . date("h:i:sa"); ?>
프로그램 실행 결과:
현재시간 오후 3시 54분 49초
PHP mktime()을 통한 생성일자
date() 함수의 선택적 타임스탬프 매개변수는 타임스탬프를 지정합니다. 타임스탬프를 지정하지 않으면 위의 예와 같이 현재 날짜와 시간이 사용됩니다.
mktime() 함수는 날짜의 Unix 타임스탬프를 반환합니다. Unix 타임스탬프에는 Unix epoch(1970년 1월 1일 00:00:00 GMT)와 지정된 시간 사이의 초 수가 포함됩니다.
문법
mktime(시,분,초,월,일,년)
아래 예시 A mktime() 함수의 일련의 매개변수는 날짜와 시간을 생성하는 데 사용됩니다.
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $d=mktime(9, 12, 31, 6, 10, 2016); echo "创建日期是 " . date("Y-m-d h:i:sa", $d); ?>
프로그램 실행 결과:
생성 날짜는 2016-06-10 09입니다. 12:31am
PHP strtotime()을 통해 문자열에서 날짜 생성
PHP strtotime() 함수를 사용합니다. 인간이 읽을 수 있는 변환 읽기 문자열을 Unix 시간으로 변환합니다.
구문
strtotime(time,now)
다음 예에서는 strtotime() 함수를 통해 날짜와 시간을 생성합니다.
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $d=strtotime("10:38pm April 15 2016"); echo "创建日期是 " . date("Y-m-d h:i:sa", $d); ?>
프로그램 실행 결과:
생성 날짜는 2016-04-15 10:38:00pm
PHP는 문자열을 날짜로 변환하는 데 매우 똑똑하므로 다양한 값을 사용할 수 있습니다.
Instance
<?php $d=strtotime("tomorrow"); echo date("Y-m-d h:i:sa", $d) . "<br>"; $d=strtotime("next Saturday"); echo date("Y-m-d h:i:sa", $d) . "<br>"; $d=strtotime("+3 Months"); echo date("Y-m-d h:i:sa", $d) . "<br>"; ?>
프로그램 실행 결과:
2016-10-10 12 : 00:00am
2016-10-15 12:00:00am
2017-01-09 04:01:09pm
참고: strtotime() 입니다. 완벽하지는 않으므로 입력한 문자열을 확인하는 것을 잊지 마세요.
인스턴스
<?php $startdate = strtotime("Saturday"); $enddate = strtotime("+5 weeks",$startdate); while ($startdate < $enddate) { echo date("M d", $startdate),"<br>"; $startdate = strtotime("+1 week", $startdate); } ?>
프로그램 실행 결과:
10월 15일
10월 22일
10월 29일
11월 5일
11월 12일
예
strtotime() 함수를 사용하여 영어 형식의 날짜 및 시간 문자열의 타임스탬프를 가져옵니다.
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo strtotime("now"),"<br>"; //当前时间的时间戳 echo "输出时间:".date("Y-m-d H:i:s",strtotime("now")),"<br>"; //输出当前时间 echo strtotime("24 May 2016"),"<br>"; //输出指点时间的时间戳 echo "输出时间:".date("Y-m-d H:i:s",strtotime("24 May 2016")),"<br>"; //输入指定的日期 ?>
프로그램 실행 결과:
1476000300
출력 시간: 2016-10-09 16:05:00
1464019200
출력 시간: 2016-05-24 00:00:00
예
카운트다운 기능 구현
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $time=strtotime(date("Y-m-d H:i:s")); //当前的系统时间 $time1=strtotime("2017-10-1 12:00:00"); //国庆节的放假时间 $time2=strtotime("2017-1-1"); //元旦的放假时间 $sub=ceil(($time1-$time)/3600); //(60秒*60分)/小时 $sub1=ceil(($time2-$time1)/86400); //(60秒*60分*24小时)/天 echo "离国庆放假时间还有 <strong>$sub</strong> 小时"; echo "<p>"; echo"离元旦放假时间还有 <strong>$sub1</strong> 天"; ?>
프로그램 실행 결과:
국경절 연휴까지 아직 8564시간 남았습니다
설날 연휴까지 -273일 남았습니다
전체 PHP 날짜 참조 매뉴얼
모든 날짜 기능에 대한 전체 참조 매뉴얼을 보려면 전체 PHP 날짜 참조 매뉴얼을 방문하세요.
본 참고 매뉴얼에는 각 기능에 대한 간략한 설명과 활용 예시가 나와 있습니다!