PHP进阶(第九弹:日期时间函数)

本文介绍PHP中的日期时间处理方法,包括如何设置时区、使用date()函数格式化日期时间、获取时间戳等,并展示了如何利用PHP进行日期计算及H5中日期时间控件的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日期时间函数库是PHP内置函数库,可以获取服务器的日期时间相关内容。

我们可以先看看php是否已经有了日期时间库的扩展:

<?php
phpinfo();

运行该文件,可以搜到,date/time support是enabled的,说明已经有这个扩展了。

设置时区

在phpinfo()中可以看到,默认的时区Default timezone为UTC。
可以使用date_default_timezone_get()来获取时区。

可以通过几种方法设置时区

修改配置文件

修改PHP配置文件data.timezone设置时区。
打开php.ini,找到date.timezone,设置为中国的时区如PRC,保存文件,重启服务器即可。

可以在http://php.net上搜索date_default_timezone_set,找到所支持的时区列表。

通过date_default_timezone_set()动态设置时区

date_default_timezone_set('Asia/Shanghai');

通过ini_set()动态设置时区

ini_get('date.timezone');
ini_set('date.timezone','Asia/Shanghai');

要注意,使用这两个函数时,需要配置文件中相应的配置项打开才行(即在配置文件中该配置项没有使用分号注释掉)。并且不是所有的配置项都能用这两个函数设置和获取。具体用法可参见PHP手册。

date()函数

date()函数非常常用,常用参数如下(注意大小写):

format说明返回值
Y4位完整的年份例如2017
y2位年份例如17
m月份,带前导零01~12
d月份中的第几天,带前导零01~31
H小时,24小时格式,带前导零00~23
i分钟,带前导零00~59
s秒钟,带前导零00~59

如:

echo date('Y年m月d日');
echo date('Y-m-d');
echo date('Y/m/d H:i:s');

还有更多的format,具体可参见PHP手册:http://php.net/,搜索date即可。

time()函数

使用time()可以获取当前的时间戳。
时间戳是指从1970年1月1日00:00:00到当前时间所经历的秒数。

date()函数的第二个参数是一个时间戳,默认传的就是当前的时间戳,
date('Y-m-d')date('Y-m-d',time())是一样的。

想要得到一天后的日期:

echo date('Y-m-d H:i:s',time()+24*3600);

mktime()函数

如果想要把日期转换成时间戳,可以使用mktime()函数,通常用于计算两个日期的时间差,如:

$birth=mktime(0,0,0,10,1,2000);
$now=time();
$age=floor(($now-$birth)/(24*3600*365));
echo $age;

更多使用可参照PHP手册。

strtotime()函数

这个函数可以将任何字符串的日期时间描述解析为 Unix 时间戳,如想要获取后一天的日期:

echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
echo date('Y-m-d H:i:s',strtotime('+1 day')),'<br/>';
echo date('Y-m-d H:i:s',strtotime('+2 days')),'<br/>';
echo date('Y-m-d H:i:s',strtotime('-1 day')),'<br/>';
echo date('Y-m-d H:i:s',strtotime('+1 month')),'<br/>';
echo date('Y-m-d H:i:s',strtotime('+2 years')),'<br/>';
echo date('Y-m-d H:i:s',strtotime('+2 years 5 months 10 days')),'<br/>';

更多用法参见PHP手册。

H5中新增表单日期时间相关的控件

如:

<input type="date" name="datetime" id="" /><br>
<input type="datetime-local" name="datetime1" id="" /><br>
<input type="month" name="month" id="" /><br>
<input type="week" name="week" id="" /><br>
<input type="time" name="time" id="" /><br>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值