PHP函数使用:如何使用date()函数格式化日期和时间?
在PHP中,date()函数是一个非常常用的日期和时间格式化函数。它可以将当前时间或指定时间转换为不同的日期和时间格式。在本篇文章中,我们将详细介绍如何使用date()函数格式化日期和时间。
一、date()函数参数
date()函数有两个参数,第一个参数用于指定日期和时间格式,第二个参数用于指定时间戳(可选参数,默认是当前时间)。下面是date()函数的语法:
date(format,timestamp);
参数解释:
1. format(必须参数):规定日期和时间的格式。可以使用的日期和时间格式如下:
日期格式:
| 符号 | 描述 | 例子 |
| ---- | -------------------------- | ------------------------------- |
| d | 月份中的第几天(01-31) | 01 |
| D | 星期中的第几天的缩写形式 | Mon、Tue、Wed... |
| j | 月份中的第几天(1-31) | 1 |
| l | 星期几的全称 | Sunday, Monday... |
| N | ISO标准的数字表示星期几 | 1(表示星期一) |
| S | 月份中的英文序数后缀 | st(表示1st)、nd、rd 或者th等 |
| w | 数字型星期几表示 | 0(表示星期天)、6(表示星期六)|
| z | 一年中的第几天(0-365) | 0(表示一月一日) |
时间格式:
| 符号 | 描述 | 例子 |
| ---- | ---------------- | --------- |
| a | 上午或下午的小写 | am或pm |
| A | 上午或下午的大写 | AM或PM |
| g | 12小时制的小时数 | 1-12 |
| G | 24小时制的小时数 | 0-23 |
| h | 12小时制的小时数 | 01-12 |
| H | 24小时制的小时数 | 00-23 |
| i | 分钟数 | 00-59 |
| s | 秒数 | 00-59 |
| u | 微秒数 | 000000-999999 |
2. timestamp(可选参数):规定时间戳(整数),如果不指定该参数,默认使用当前时间的时间戳。
二、date()函数用法
以下是date()函数的一些用法:
1. 获取当前日期和时间
要获取当前日期和时间,只需要调用date()函数,而不需要传递时间戳参数,如下所示:
echo date("Y/m/d H:i:s");
// 输出当前日期和时间,格式为“年/月/日 时:分:秒”
在这个示例中,我们传入了“Y/m/d H:i:s”作为format参数,它会把当前日期和时间格式化成“年/月/日 时:分:秒”的形式,并打印出来。
2. 根据时间戳获取日期和时间
要根据时间戳获取日期和时间,只需要将时间戳作为第二个参数传递给date()函数,如下所示:
echo date("Y/m/d H:i:s", 1632700744);
// 输出2021/09/27 18:39:04
在这个示例中,我们传入了1632700744作为时间戳,它会将时间戳转换为“年/月/日 时:分:秒”的形式,并打印出来。
3. 获取当前时间戳
要获取当前时间的时间戳,只需要使用time()函数,如下所示:
echo time();
// 输出当前时间戳
4. 将日期字符串转换成时间戳
如果要将日期字符串转换为时间戳,可以使用strtotime()函数,如下所示:
echo strtotime("2021-09-27 18:39:04");
// 输出1632700744
在这个示例中,我们传入“2021-09-27 18:39:04”作为日期字符串,它会将其转换为时间戳,并打印出来。
三、date()函数的高级用法
除了上面介绍的基础用法之外,date()函数还具有一些高级用法。
1. 使用strftime()函数输出本地化日期和时间
如果您需要输出本地化日期和时间,可以使用PHP的strftime()函数。strftime()函数与date()函数类似,但支持本地化的日期和时间格式,如下所示:
setlocale(LC_TIME, "zh_CN");
echo strftime("%Y年%m月%d日 %X");
// 输出“2021年09月28日 09:03:29”
在这个示例中,我们传入了“%Y年%m月%d日 %X”作为format参数,setlocale()函数用于设置输出语言环境为中文,它会将当前日期和时间格式化为形如“xxxx年xx月xx日 xx:xx:xx”的形式,并打印出来。
2. 将时间格式化为可读性较高的格式
如果您需要将时间格式化为一个可读性较高的格式,可以使用一些日期计算技巧。例如:
function format_time($seconds) {
// 如果秒数小于1分钟,直接返回秒数
if ($seconds < 60) {
return $seconds . '秒';
}
// 如果秒数小于1小时,返回分钟数和秒数
if ($seconds < 3600) {
$m = floor($seconds / 60);
$s = $seconds % 60;
return $m . '分钟' . $s . '秒';
}
// 如果秒数小于1天,返回小时数和分钟数
if ($seconds < 86400) {
$h = floor($seconds / 3600);
$m = floor(($seconds % 3600) / 60);
return $h . '小时' . $m . '分钟';
}
// 如果秒数大于1天,返回天数和小时数
$d = floor($seconds / 86400);
$h = floor(($seconds % 86400) / 3600);
return $d . '天' . $h . '小时';
}
echo format_time(43800);
// 输出“12小时10分钟”
在这个示例中,我们定义了一个名为format_time的函数,用于将秒数格式化为可读性较高的格式。在函数中,我们使用了一些日期计算技巧,将秒数转换为“x天x小时x分钟x秒”或“x小时x分钟x秒”等形式,并返回。
以上就是关于PHP中date()函数的使用和注意事项的详细介绍,希望对大家有所帮助。
