博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[PHP] 日期与时间
阅读量:7259 次
发布时间:2019-06-29

本文共 2008 字,大约阅读时间需要 6 分钟。

1. 获取时间和日期

date()函数用来获取并格式化日期和时间,它带有两个参数,第一个是格式字符串,第二个可选参数是UNIX时间戳。如果没有指定时间戳,在默认的情况下,date()函数将返回当前的日期和时间,例如:

echo date('jS F Y');
支持的格式代码
代码 描述
a 上午或下午,小写字符表示,"am"或"pm"。
A 上午或下午,大写字符表示,"AM"或"PM"。
B Swatch Internet时间。
c ISO 8601日期,日期用YYYY-MM-DD表示,时间用HH:MM:SS表示。
d 月份中的日期,有前导0,如"05"。
D 星期,缩略字符表示,如"Mon"。
e 时区识别器。
F 年中的月份,全写,如"January"。
g 日期中的时间,12小时制,无前导0,从"1"到"12"。
G 日期中的时间,24小时制,无前导0,从"0"到"23"。
h 日期中的时间,12小时制,有前导0,从"01"到"12"。
H 日期中的时间,24小时制,有前导0,从"00"到"23"。
i 小时中的分钟,有前导0,从"00"到"59"。
I 夏令时制,以布尔值表示,若为夏令值,返回"1",否则返回"0"。
j 月份中的日期,无前导0,如"5"。
l 星期,全写,如"Sunday"。
L 闰年,以布尔值表示,如果日期所在年是闰年,返回"1",否则返回"0"。
m 年中的月份,有前导0,从"01"到"12"。
M 年中的月份,缩略字符表示,如"Jan"。
n 年中的月份,无前导0,从"1"到"12"。
o ISO 8601的年份数。
O 当前时区与格林威治时间之间小时时差。
r RFC822格式的日期,如"Wed, 1 Jul 2010 18:10:10 + 1600"。
s 分钟中的秒数,有前导0,从"00"到"59"。
S 日期后缀,以两个字符表示,如"st"、"nd"、"rd"。
t 月份的天数,从"28"到"31"。
T 服务器的时间区域设置,如"EST"。
U UNIX时间戳。
w 星期,数字表示,从"0"(星期日)到"6"(星期六)。
W 一年的星期数。
y 年份,两位数,如"12"。
Y 年份,四位数,如"2012"。
z 日期,数字表示,从"0"到"365"。
Z 与当前时区的时区差,单位为秒,从"-43200"到"43200"。

2. UNIX时间戳

大多数UNIX系统保存当前日期和时间的方法是:保存格林威治时间从1970年1月1日零点起到当前时刻的秒数,以32位整列表示,其中1970年1月1日零点也叫UNIX纪元。

虽然这是UNIX惯例,但是即使在Windows服务器中运行PHP,这个格式仍然被date()函数和许多的PHP其他函数使用。不同的是,对于Windows,时间戳必须是正数。

将日期和时间转变成UNIX时间戳,可以使用mktime()函数,原型如下:

int mktime([int hour[, int minute[, int second [, int month[, int year[, int is_dst]]]]]])

参数is_dst表示该日期所示的时间是否是夏令时,如果是,可以将其设置为1,如果不是,设置为0,如果不知道,则设置为-1(默认值)。如果对应参数为空,将默认为当前时间。因此如果获取当前的UNIX时间戳,通过如下方式:

$time = mktime();

3. 时间函数

getdate()函数能够确定当前时间,原型如下:

array getdate([int timestamp])

它以时间戳为可选参数,返回一个相关数组,表示日期和时间的各个部分。

相关数组中的关键字-值对
关键字
seconds 秒钟,数字
minutes 分钟,数字
hours 小时,数字
mday 月份中的日期,数字
wday 星期,数字
mon 月份,数字
year 年份,数字
yday 年份中的日期,数字
weekday 星期,全写
month 月份,全写
0 时间戳,数字

可以调用checkdate()函数来检验日期是否有效,原型如下:

int checkdate(int month, int day, int year)

使用strftime()函数,可以根据系统的locale来格式化一个时间戳,原型如下:

string strftime(string format[, int timestamp])

如果希望以更短的时间段来计量时间,必须使用microtime()函数,它将返回浮点数的时间戳,它与mktime()函数、time()函数或date()函数的返回值相同,但是还有小数部分,例如:

echo number_format(microtime(true), 10, '.', '');

转载地址:http://naodm.baihongyu.com/

你可能感兴趣的文章
生活小窍门
查看>>
【六 处理JSON】 1. JSON基础
查看>>
HTML行内元素、块状元素以及空(void)元素
查看>>
在centos下安装nginx
查看>>
删除windows中的超长路径
查看>>
scala之父在线系列学习视频:Functional Programming Principl...
查看>>
Linux的五个查找命令
查看>>
栈求解迷宫问题
查看>>
Linux系统/网络管理员的nmap的29个实用例子
查看>>
我的友情链接
查看>>
maven常用命令
查看>>
我的友情链接
查看>>
Lock包相关
查看>>
LVS/DR+ssl+mysql实现
查看>>
golang 并发一(使用)
查看>>
如何修改DB2日志记录级别
查看>>
在openstack宿主机里删除一个虚拟机关联的网卡、端口及桥
查看>>
应用系统发布流程
查看>>
Web service 初体验
查看>>
android查看当前应用已经加载的so库情况
查看>>