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

PHP函数使用:如何使用date()函数格式化日期和时间?

发布时间:2023-06-10 16:47:25

在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()函数的使用和注意事项的详细介绍,希望对大家有所帮助。