Home >Backend Development >PHP Tutorial >PHP中的时间和日期

PHP中的时间和日期

WBOY
WBOYOriginal
2016-06-23 13:30:09888browse

一、date()函数

string date ( string $format [, int $timestamp ] )
作用:将时间戳格式化为易读的时间和日期。

参数 描述
format 必需。规定时间戳的格式。
timestamp 可选。规定时间戳。默认是当前时间和日期。

1、获取日期

(1)、年

format格式 说明 例子
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

(2)、月

format格式 说明 例子
F 月份,完整的文本格式,例如 January 或者 March January 到 December
m 数字表示的月份,有前导零 01 到 12
M 三个字母缩写表示的月份 Jan 到 Dec
n 数字表示的月份,没有前导零 1 到 12
t 给定月份所应有的天数 28 到 31

(3)、日

format格式 说明 例子
d 月份中的第几天,有前导零的 2 位数字 01 到 31
D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun
j 月份中的第几天,没有前导零 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

(4)、星期

format格式 说明 例子
W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周)

2、获取时间

(1)、时间

format格式 说明 例子
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

(2)、时区

format格式 说明 例子
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
二、mktime()函数

mktime(hour,minute,second,month,day,year)
作用:根据给出的参数返回Unix时间戳。
时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。

三、strtotime()函数

int strtotime ( string $time [, int $now = time() ] )
作用:将任何英文文本的日期时间描述解析为 Unix 时间戳
time:日期/时间字符串。正确格式的说明详见 日期与时间格式。
now:用来计算返回值的时间戳。

备注:修改时区获取本地时间

  1. 修改PHP.ini文件中date.timezone字段
    去掉前面的分号,在后面加上PRC(北京时间),然后重启appache
  2. 在代码中初始化时间 date_default_timezone_set (XXX)
  3. 另外:关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为重庆,上海,乌鲁木齐)
    港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)。还有新加坡:Asia/Singapore。
    其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC
四、奉上我学完这个之后做的一个简单的日历:
<html><head><!--<meta http-equiv="refresh" content="3">--></head><body><table cellpadding="10"><tr><td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thu</td><td>Fri</td><td>Sat</td></tr><?php #显示一张日历 $SATNUM=0; $MONTH=date("m"); echo "<tr>"; for($i=0;$i<date("w",strtotime("2015/$MONTH/01"));$i++){ echo "<td></td>"; } for($j=0,$i=date("w",strtotime("2015/$MONTH/01"));$i<=6;$i++,$j++){ $tmp=01+$j; $GLOBALS['SATNUM']=$tmp; echo "<td>$tmp</td>"; } echo "</tr>"; for($j=0;$j<4;$j++){ echo "<tr>"; for($i=0;$i<7;$i++){ $tmp=++$GLOBALS['SATNUM']; if($tmp==date("d")) echo "<td bgcolor=blue>$tmp</td>"; elseif(!($tmp>date("t"))) echo "<td>$tmp</td>"; } echo "</tr>"; } ?><?php #确定星期几 $week=""; switch(date("w")){ case 0:$week="星期天";break; case 1:$week="星期一";break; case 2:$week="星期二";break; case 3:$week="星期三";break; case 4:$week="星期四";break; case 5:$week="星期五";break; case 6:$week="星期六";break; } #动态显示当前时间 echo "现在时间是:".date("Y年m月d日$week h时i分s秒"); echo "<br />"; ?></body></html>

版权声明:本文为Lshare原创文章,需要转载的请联系我,有问题欢迎评论或私信。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn