PHP日期时间函数:10个常用的格式化和计算函数
PHP 是一种强类型的语言,提供了丰富的日期时间函数,方便开发人员在处理日期时间数据时进行操作和计算。在大型项目中,准确地处理和格式化日期时间数据非常重要。下面介绍 10 个常用的 PHP 日期时间函数。
#1 date()
在 PHP 中,date() 函数是最常用的日期时间函数之一。它允许开发人员将日期时间数据格式化为指定的字符串。该函数的最基本语法如下:
date(format, timestamp)
其中,format 参数是必需的,指定了要输出的日期时间格式。而 timestamp 参数则是可选的,如果省略,则使用当前日期时间。
示例代码:
$currentDate = date('Y-m-d H:i:s');
echo $currentDate; // 输出当前日期时间
#2 strtotime()
PHP 中的 strtotime() 函数用于将字符串转换为 Unix 时间戳。它通常用于从文本中读取日期时间数据,并将其转换为日期格式以进行进一步处理。
示例代码:
$dateStr = '2021-09-30 18:30:00'; $timestamp = strtotime($dateStr); echo $timestamp; // 输出 Unix 时间戳
#3 time()
time() 函数返回当前 Unix 时间戳,它的语法非常简单:
time()
示例代码:
$currentTime = time(); echo $currentTime; // 输出 Unix 时间戳
#4 mktime()
mktime() 函数是一个灵活的日期时间函数,它接受小时、分钟和秒作为输入,返回 Unix 时间戳。mktime() 函数的语法如下:
mktime(hour, minute, second, month, day, year)
示例代码:
$timestamp = mktime(12, 0, 0, 9, 30, 2021); echo $timestamp; // 输出 Unix 时间戳
#5 strftime()
strftime() 函数与 date() 函数类似,用于格式化日期时间。不同的是,strftime() 函数可以使用本地时间格式(而不是固定的日期时间格式)。该函数的语法如下:
strftime(format, timestamp)
示例代码:
setlocale(LC_TIME, "zh_CN.utf8"); // 设置本地时间格式
$currentDate = strftime('%Y年%m月%d日 %H时%M分%S秒', time());
echo $currentDate; // 输出本地时间格式
#6 date_diff()
date_diff() 函数用于计算两个日期时间之间的差异。其语法如下:
date_diff(DateTimeInterface $start, DateTimeInterface $end, $absolute = false)
其中,$start 和 $end 参数是 DateTimeInterface 类型,表示要计算差异的两个日期时间。$absolute 参数是可选的,如果设置为 true,则返回差异的绝对值。
示例代码:
$startDate = new DateTime('2021-09-01');
$endDate = new DateTime('2021-09-30');
$interval = date_diff($startDate, $endDate);
echo $interval->format('%R%a days'); // 输出相差的天数
#7 strtotime()
strtotime() 函数可以解析与人类可读的日期时间字符串并返回 Unix 时间戳。语法如下:
strtotime(timeString, [now])
其中,timeString 参数是要解析的日期时间字符串,now 参数是可选的,表示指定时间点的 Unix 时间戳。
示例代码:
$timestamp = strtotime('2021-09-30 18:30:00');
echo $timestamp; // 输出 Unix 时间戳
#8 date_create()
date_create() 函数用于创建一个 DateTime 对象,该对象用于处理日期时间。该函数的语法如下:
date_create([time], [timezone])
其中,time 参数是可选的,如果省略,则为当前日期时间。timezone 参数是可选的,表示要使用的时区。
示例代码:
$dateObject = date_create('2021-09-30 18:30:00');
echo $dateObject->format('Y-m-d H:i:s'); // 输出日期时间字符串
#9 date_modify()
date_modify() 函数用于修改 DateTime 对象的日期时间。该函数的语法如下:
date_modify($object, $modify)
其中,$object 是要修改的 DateTime 对象,$modify 是一个字符串,包含要执行的修改操作。
示例代码:
$dateObject = date_create('2021-09-30 18:30:00');
date_modify($dateObject, '+1 day');
echo $dateObject->format('Y-m-d H:i:s'); // 输出日期时间字符串
#10 date_add()
date_add() 函数用于将指定的时间间隔添加到 DateTime 对象中。该函数的语法如下:
date_add($object, $interval)
其中,$object 是要修改的 DateTime 对象,$interval 是要添加的 DateInterval 对象。
示例代码:
$dateObject = date_create('2021-09-30 18:30:00');
$interval = new DateInterval('P1D');
date_add($dateObject, $interval);
echo $dateObject->format('Y-m-d H:i:s'); // 输出日期时间字符串
这些日期时间函数是开发人员在日常开发过程中经常使用的。不过,在处理日期时间数据时,需要注意时区和格式化等问题,以确保处理结果的正确性。
