phpdate()(php获取年月日)
简介:
在 PHP 编程中,将日期和时间以字符串的形式输出是一项很常见的任务。PHP 提供了多种处理日期和时间的函数,其中一个非常有用的函数就是 phpdate()。
多级标题:
一、phpdate()是什么?
二、phpdate()的语法和参数
三、phpdate()的常见用法
四、phpdate()的实例演示
内容详细说明:
一、phpdate()是什么?
phpdate()是一个 PHP 函数,用于将 Unix 时间戳转换为可读性更好的日期和时间格式。Unix 时间戳是一个表示当前系统时间的整数值,它表示从 1970 年 1 月 1 日开始到当前时间所经过的秒数。
在 Web 开发中,我们常需要显示或处理日期和时间,这时候 phpdate() 就非常有用了。
二、phpdate()的语法和参数
phpdate() 的语法如下:
```
string phpdate ( string $format [, int $timestamp = time() ] )
```
其中,$format 参数是必选参数,指定输出日期和时间的格式。$timestamp 参数是可选参数,代表要转换的 Unix 时间戳,默认值是当前系统时间。
$format 参数是非常重要的,这决定了 phpdate() 输出的日期和时间格式。$format 可以包含各种格式化字符,如下表所示:
| 格式化字符 | 说明 |
| ---------- | ---- |
| d | 月份中的第几天,有前导零 |
| D | 星期几的缩写,如 Mon |
| j | 月份中的第几天,无前导零 |
| l | 星期几的完整名称,如 Monday |
| S | 月份中的英文序数后缀,如 st,nd |
| w | 星期几的数字表示,0 表示 Sunday |
| z | 年份中的第几天,从 0 开始计数 |
| F | 月份的完整名,如 January |
| m | 月份的数字表示,有前导零 |
| M | 月份的英文缩写,如 Jan |
| n | 月份的数字表示,无前导零 |
| Y | 年份的四位数字表示 |
| y | 年份的两位数字表示 |
| a | 上午还是下午,小写 |
| A | 上午还是下午,大写 |
| g | 小时,12 小时制,无前导零 |
| G | 小时,24 小时制,无前导零 |
| h | 小时,12 小时制,有前导零 |
| H | 小时,24 小时制,有前导零 |
| i | 分钟,有前导零 |
| s | 秒数,有前导零 |
| O | 时区偏移量,如 +0800 |
| T | 时区缩写,如 CST |
| U | Unix 时间戳 |
三、phpdate()的常见用法
phpdate() 可以输出各种格式的日期和时间,下面介绍几个常见的用法。
1. 输出当前系统时间
```
echo date('Y-m-d H:i:s');
```
这会输出类似于 2022-05-10 11:20:30 的格式化时间字符串。
2. 输出指定格式的日期和时间
```
echo date('F j, Y, g:i a', strtotime('2022-05-10 11:20:30'));
```
这会输出类似于 May 10, 2022, 11:20 am 的日期和时间格式化字符串。strtotime() 函数用于将日期时间字符串转换为 Unix 时间戳。
3. 获取当前时间戳
```
echo time();
```
这会输出当前系统时间对应的 Unix 时间戳。
4. 判断某个时间是否在某个时间范围内
```
$now = time();
$start = strtotime('2022-05-01');
$end = strtotime('2022-05-31');
if ($now >= $start && $now <= $end) {
echo '当前时间在 5 月份';
} else {
echo '当前时间不在 5 月份';
```
这会判断当前时间是否在 2022 年 5 月 1 日到 5 月 31 日之间。
四、phpdate()的实例演示
下面通过一个完整的实例来演示 phpdate() 的用法:
```
// 设置时区为上海
date_default_timezone_set('Asia/Shanghai');
$timestamp = time();
echo "当前时间戳为:$timestamp
";
echo "当前时间为:" . date('Y-m-d H:i:s', $timestamp) . "
";
echo "本周一为:" . date('Y-m-d H:i:s', strtotime('monday this week')) . "
";
echo "当前时间在" . (date('L') ? '' : '不') . "是闰年
";
echo date('Y-m-d H:i:s', strtotime('-1 day')) . "
";
echo date('Y-m-d H:i:s', strtotime('+1 week')) . "
";
?>
```
输出结果如下所示:
```
当前时间戳为:1651993398
当前时间为:2022-05-07 23:03:18
本周一为:2022-05-02 00:00:00
当前时间在不是闰年
2022-05-06 23:03:18
2022-05-14 23:03:18
```
本例中,首先调用了 date_default_timezone_set() 函数设置时区为上海。然后输出了当前系统时间对应的 Unix 时间戳和可读性更好的时间格式。接着使用 strtotime() 函数获取本周一的时间,以及判断当前时间是否是闰年。最后使用 strtotime() 函数对时间进行加减运算,输出明天的时间和下周的时间。