PHP日期与时间用法总结

1、通过 date_default_timezone_set 函数设置时区

<?php
echo "UTC时间:".date("Y-m-d H:i:s");            //显示默认的UTC时间
date_default_timezone_set("PRC");                //使用中华人民共和国的时区
echo "<br>";
echo "北京时间:".date("Y-m-d H:i:s");            //输出北京时间
echo "<br>";
echo "当前时区:".date_default_timezone_get();    //获取当前时区
?>

2、通过 time() 函数获取当前的UNIX时间戳,返回值为从UNIX纪元(格林威治时间1970年1月1日00:00:00)到当前时间的秒数
语法:int time(void)

<?php
$nextWeek = time() + (7 * 24 * 60 * 60);           //7 days; 24 hours; 60 mins; 60secs
echo time()."<br>";                                //当前时间戳
echo "Now:".date("Y-m-d")."<br>";                 //输出当前日期
echo "Next Week:".date("Y-m-d",$nextWeek);        //输出变量nextweek的日期
?>

3、使用 strtotime() 函数将任何英文文本的日期时间解释为 UNIX 时间戳,其值为相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间。
语法为 int strtotime(string time[,int now])

<?php
echo strtotime ("now"), "\n";
echo "输出时间:".date("Y-m-d H:i:s",strtotime ("now")),"<br>";
echo strtotime ("10 November 2012"), "\n";
echo "输出时间:".date("Y-m-d H:i:s",strtotime ("10 November 2012")),"<br>";
echo strtotime ("+3 day"), "\n";
echo "输出时间:".date("Y-m-d",strtotime ("+3 day")),"<br>";
echo "加一周:".strtotime ("+1 week")."<br>";
echo "加一周两天三小时四分钟:".strtotime ("+1 week 2 days 3 hours 4 seconds")."<br>";
echo "下周四:".strtotime ("next Thursday")."<br>";
echo "上周一:".strtotime ("last Monday"), "\n";
?>

4、格式化日期和时间,通过 date() 函数对本地日期和时间进行格式化。语法date(string format,inttimestamp),参数format指定日期和时间输出的格式。有关参数format指定的格式如下表。

参数    说明
a         小写的上午和下午值,返回值为 am 或 pm
A         大写的上午和下午值,返回值为 AM 或 PM
B         Swatch Internet 标准时间,返回值为 000~999
d         月份中的第几天,有前导零的两位数字,返回值为 01~31
D        星期中的第几天,文本格式,3个字母,返回值为 Mon 到 Sun
F        月份,完整的文本格式,返回值为 January 到 December
G        小时,12小时格式,没有前导零,返回值为 1~12
H        小时,24小时格式,没有前导零,返回值为 0~23
i         有前导零的分钟数,返回值为 00~59
I         判断是否为夏令时,如果时夏令时返回 1,否则为 0 
J        月份中的第几天,没有前导零,返回值为 1~31
l         星期数,完整的文本格式,返回值为 Sunday 到 Saturday
L        判断是否为闰年,如果时闰年返回 1,否则为 0
m       数字表示的月份,有前导零,返回值为 01~12
M       3个字母缩写表示的月份,返回值为 Jan 到 Dec
n        数字表示的月份,没有前导零,返回值为 1~12
o        与格林威治时间相差得小时数,如 0200
r         RFC 822 格式得日期,如 Mon, 11 Feb 2019 10:54:50 +0800
s        秒数,有前导零,返回值为 00~59
S       每月天数后面的英文后缀,两个字符,如 st、nd、rd 或者 th。可以和 j 一起使用
t        指定月份所应有的天数
T       本机所在的时区
U       从 UNIX 纪元开始至今的秒数
w      星期中的第几天,数字表示,返回值为 0~6
W     ISO-8061 格式年份中的第几周,每周从星期一开始
y       两位数字表示的年份,返回值如 88 或 08
Y      4位数字完整表示的年份,返回值如 1998、2019
z      年份中的第几天,返回值为 0~365
Z      时差偏移量的秒数。UTC 西边时区偏移量总是负的,UTC东边时区偏移量总是正的,返回值为-43200~43200

<?php
echo date("Y-m-d")."<br>";                        //2019-02-11
echo date("m.d.y")."<br>";                        //02.11.19
echo date("j, n, Y")."<br>";                      //11, 2, 2019
echo date("F j, Y, g:i a")."<br>";                //February 11, 2019, 11:13 am
echo date("D M j G:i:s T Y")."<br>";              //Mon Feb 11 11:13:05 CST 2019
echo date('\I\t \i\s \t\h\e jS \d\a\y')."<br>";   //It is the 11th day             
echo date("H:i:s 这是当前时间")."<br>";            //11:13:05 这是当前时间
echo date('h-i-s, j-m-y,这是我的一天')."<br>";     //11-13-05, 11-02-19,这是我的一天
?>

5、使用 getdate() 函数获取日期和时间指定部分的相关信息。语法 array getdate(int timestamp)

参数                     说明
seconds               秒,返回值为 0~59
minutes                分钟,返回值为 0~59
hours                    小时,返回值为 0~23
mday                    月份中第几天,返回值为1~31
wday                    星期中第几天,返回值为 0(星期日)~6(星期六)
mon                     月份数字,返回值为 1~12
year                     4位数字表示的完整年份,返回值如 2000 或 2008
yday                    一年中第几天,返回值为 0~365
weekday             星期几的完整文本表示,返回值为 Sunday 到 Saturday
month                  月份的完整文本表示,返回值为 January 到 December
0                          返回从UNIX纪元开始的秒数

<?php
$arr = getdate();                                                //使用getdate函数将当前信息保存
echo $arr["year"]."-".$arr["mon"]."-".$arr["mday"]." ";                        //返回当前的日期信息
echo $arr["hours"].":".$arr["minutes"].":".$arr["seconds"]." ".$arr["weekday"];	//返回当前的时间信息
echo "<br>";
echo "Today is the ".$arr["yday"]."th of year";                                //输出今天是一年中的第几天
echo "<br>";
echo "UNIX is".$arr[0];                                                        //输出UNIX
?>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值