日期和时间是PHP在执行SQL查询或设计网站等过程中最常用的操作。PHP为我们提供了用于这些任务的预定义功能。下面讨论了PHP中用于日期和时间的一些预定义函数。
PHP date()函数
PHP date()函数将时间戳转换为更具可读性的日期和时间格式。
为什么我们需要date()函数?
计算机以称为UNIX时间戳的格式存储日期和时间, 该时间以自Unix纪元开始(1970年1月1日午夜格林威治标准时间, 即1970年1月1日格林尼治标准时间)开始的秒数计量时间。
由于这对于人类来说是一种不切实际的格式, 因此PHP会将时间戳转换为人类可读且更易理解的格式。
语法如下:
date(format, timestamp)
说明:
- date()函数中的format参数指定返回的日期和时间的格式。
- 时间戳是一个可选参数, 如果不包含时间戳, 则将使用当前日期和时间。
下面的程序说明了PHP中date()函数的用法:
<?php
echo "Today's date is :" ;
$today = date ( "d/m/Y" );
echo $today ;
?>
输出如下:
Today's date is :05/12/2017
date()函数中可用的格式化选项
:date()函数的format参数是一个字符串, 可以包含多个字符, 从而可以生成各种格式的日期。
格式字符串中常用的与日期相关的格式字符:
- d –代表月中的某天;带有前导零的两位数字(01或31)。
- D –表示星期几的缩写形式(周一至周日)。
- m –表示月份中带有前导零(01或12)的月份。
- M –代表月份的月份, 缩写(1月至12月)。
- y –用两位数字表示年份(08或14)。
- Y –以四位数字表示年份(2008或2014)。
- 可以通过插入其他字符(例如连字符(-), 点(。), 斜杠(/)或空格)来分隔日期的各部分, 以添加其他视觉格式。
<?php
echo "Today's date in various formats:" . "\n" ;
echo date ( "d/m/Y" ) . "\n" ;
echo date ( "d-m-Y" ) . "\n" ;
echo date ( "d.m.Y" ) . "\n" ;
echo date ( "d.M.Y/D" );
?>
输出如下:
Today's date in various formats:
05/12/2017
05-12-2017
05.12.2017
05.Dec.2017/Tue
以下字符可与date()函数一起使用以格式化时间字符串:
- h –以12小时格式表示小时, 前导零(01至12)。
- H –以24小时格式表示小时, 前导零(00至23)。
- i –代表分钟, 前导零(00至59)。
- s –表示秒, 前导零(00至59)。
- a –表示小写的前子午线和后子午线(上午或下午)。
- A –代表大写的前子午线和后子午线(AM或PM)。
<?php
echo date ( "h:i:s" ) . "\n" ;
echo date ( "M, d, Y h:i:s A" ) . "\n" ;
echo date ( "h:i a" );
?>
输出如下:
03:04:17
Dec, 05, 2017 03:04:17 PM
03:04 pm
PHP time()函数
time()函数用于获取当前时间作为Unix时间戳(自Unix纪元开始的秒数:1970年1月1日00:00:00 GMT)。
以下字符可用于格式化时间字符串:
- h –以12小时格式表示小时, 前导零(01至12)。
- H –以24小时格式表示小时, 前导零(00至23)。
- i –代表分钟, 前导零(00至59)。
- s –表示秒, 前导零(00至59)。
- a –表示小写的前子午线和后子午线(上午或下午)。
- A –代表大写的前子午线和后子午线(AM或PM)。
下面的程序说明了time()函数在PHP中的用法:
<?php
$timestamp = time();
echo ( $timestamp );
echo "\n" ;
echo ( date ( "F d, Y h:i:s A" , $timestamp ));
?>
输出如下:
1512486297
December 05, 2017 03:04:57 PM
PHP mktime()函数
mktime()函数用于为特定日期和时间创建时间戳。
如果未提供日期和时间, 则返回当前日期和时间的时间戳。
语法如下:
mktime(hour, minute, second, month, day, year)
输入如下:
<?php
echo mktime (23, 21, 50, 11, 25, 2017);
?>
输出如下:
1511652110
上面的代码为2017年11月25日23时21分50秒创建了一个时间戳。