欢迎访问宙启技术站
智能推送

PHP日期时间格式化函数

发布时间:2023-06-19 08:38:06

PHP是一种广泛使用的服务器端脚本语言,可以在网页和Web应用程序中使用。在PHP开发过程中,日期时间格式化是非常常见的需求之一。本文将介绍PHP中常用的日期时间格式化函数。

1. date()函数

date()函数是PHP中最简单且最常用的日期时间格式化函数,它可以输出日期和时间的各种格式。

语法:

string date (string $format [, int $timestamp ])

其中,$format参数指定要输出的日期时间格式,$timestamp参数是可选的,指定要格式化的时间戳。如果省略,则默认使用当前时间。

示例:

echo date('Y-m-d H:i:s'); //输出当前日期和时间,格式为'yyyy-mm-dd hh:ii:ss'
echo date('l, F jS, Y'); //输出当前日期的全称、月份和日期
echo date('h:i A', strtotime('6pm + 12hours')); //输出指定时间的12小时制格式

常用的日期时间格式:

格式 | 说明

---|---

Y | 年份,四位数字

y | 年份,两位数字

m | 月份,两位数字

n | 月份,不含前导零

M | 月份,英文缩写

F | 月份,英文全称

d | 日期,两位数字

j | 日期,不含前导零

D | 星期几,英文缩写

l | 星期几,英文全称

H | 小时,24小时制

h | 小时,12小时制

i | 分钟,两位数字

s | 秒数,两位数字

A | 上午或下午,大写字母

2. strftime()函数

strftime()函数与date()函数类似,也是用于格式化日期和时间的函数,不同的是它可以输出本地化的日期和时间格式。

语法:

string strftime (string $format [, int $timestamp = time() ])

其中,$format参数指定要输出的日期时间格式,$timestamp参数是可选的,指定要格式化的时间戳。如果省略,则默认使用当前时间。

示例:

setlocale(LC_TIME, 'en_US.utf8'); //设置本地化语言为英文
echo strftime('%A, %B %d %Y'); //输出当前日期的英文全称和日期
setlocale(LC_TIME, 'zh_CN.utf8'); //设置本地化语言为中文
echo strftime('%Y年%m月%d日 %H时%M分%S秒'); //输出当前日期和时间的中文格式

常用的指令符:

指令符 | 说明

---|---

%A | 星期几,完整的文本格式

%a | 星期几的缩写

%B | 月份,完整的文本格式

%b | 月份的缩写

%d | 月份中的第几天,两位数字表示

%e | 同%d,但不含前导零

%H | 24小时制下的小时数,两位数字表示

%I | 12小时制下的小时数,两位数字表示

%m | 数字表示的月份,两位数字表示

%M | 分钟数,两位数字表示

%p | 上午或下午的标识符

%S | 秒数,两位数字表示

%y | 两位数字表示的年份

%Y | 四位数字表示的年份

3. DateTime类

DateTime类是PHP5中的一个面向对象的日期时间类,它提供了很多有用的方法,使日期时间格式化更加灵活。

语法:

DateTime::__construct([ string $time = "now" [, DateTimeZone $timezone = null ]])
DateTime::format(string $format)

其中,__construct()方法是用于创建一个DateTime对象,$time参数表示要格式化的时间,可以是一个日期时间字符串或时间戳,默认为当前时间,$timezone参数是可选的,表示时区,默认为null,表示使用服务器时区。format()方法用于格式化DateTime对象。

示例:

$date = new DateTime(); //创建一个当前日期时间的DateTime对象
echo $date->format('Y-m-d H:i:s'); //输出日期时间,格式为'yyyy-mm-dd hh:ii:ss'

$date = new DateTime('2022-01-01 00:00:00', new DateTimeZone('Asia/Shanghai')); //创建一个指定日期时间和时区的DateTime对象
echo $date->format('Y年m月d日 H时i分s秒'); //输出日期时间,格式为'yyyy年mm月dd日 hh时ii分ss秒'

常用的DateTime方法:

方法 | 说明

---|---

add() | 增加一个时间间隔

sub() | 减少一个时间间隔

diff() | 计算两个日期间的时间差

getTimeStamp() | 返回时间戳

getOffset() | 返回时区偏移量

getTimezone() | 返回时区对象

setTimezone() | 设置时区对象

4. strtotime()函数

strtotime()函数是用于将文本时间转换为时间戳的函数。

语法:

int strtotime(string $time [, int $now = time() ])

其中,$time参数表示要转换的文本时间,$now参数是可选的,表示现在的时间戳,默认为当前时间戳。

示例:

echo strtotime('2022-01-01 00:00:00'); //输出指定时间的时间戳
echo strtotime('+1 day'); //输出明天此时的时间戳
echo strtotime('-2 hours 30 minutes'); //输出两个半小时之前的时间戳

注意事项:

- strtotime()函数默认解析时间字符串的规则是:尝试将时间字符串解析成日期,然后再将日期解析成时间。因此,对于某些格式的时间字符串可能会解析失败。

- strtotime()函数对年份的解析范围是1970至2038年。

总结

以上就是PHP常用的日期时间格式化函数。在实际开发中,我们可以根据需求选择合适的函数和格式来处理日期时间。

- 若只需要简单的日期时间格式化,则可以使用date()函数或strftime()函数。

- 若需要进行更加灵活的日期时间操作,则可以使用DateTime类。

- 若需要将文本时间转换成时间戳,则可以使用strtotime()函数。

无论使用哪种函数,我们都应该注意选择合适的日期时间格式,并在需要时设置时区来避免出现时间差错。