这篇“php怎么获取时间戳及格式化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php怎么获取时间戳及格式化”文章吧。
一、什么是时间戳
时间戳(Timestamp)是一种表示时间的方式,它是一个整数,表示从1970年1月1日0时0分0秒(格林威治时间)起到当前时间的秒数,也称为Unix时间戳。时间戳在计算机领域中被广泛使用,特别是在Web开发中。
在PHP中,我们可以使用time()函数获取当前时间戳,例如:
echo time(); // 输出当前时间戳,例如:1565949030
二、如何获取指定时间的时间戳
除了获取当前时间的时间戳外,我们还需要获取一些指定时间的时间戳,比如某个具体时间、某个日期等等。PHP提供了几种方式来获取指定时间的时间戳:
mktime()函数
mktime()函数可以返回一个指定日期的时间戳。它的参数可以包含时、分、秒、月、日、年等信息。例如:
echo mktime(12, 30, 0, 8, 15, 2019); // 输出:1565857800
这表示2019年8月15日12时30分的时间戳是1565857800。
strtotime()函数
strtotime()函数可以将任何英文文本的日期时间描述转为时间戳。例如:
echo strtotime('2019-08-15 12:30:00'); // 输出:1565857800
这和mktime()函数的作用类似,只是传入的参数格式不同。
DateTime类
PHP还提供了DateTime类,它可以方便地处理日期和时间。使用DateTime类,我们可以先创建一个DateTime对象,然后通过对象的format()方法获取指定格式的时间,再通过对象的getTimestamp()方法获取时间戳。例如:
$dateTime = new DateTime('2019-08-15 12:30:00'); echo $dateTime->format('Y-m-d H:i:s'); // 输出:2019-08-15 12:30:00 echo $dateTime->getTimestamp(); // 输出:1565857800
三、如何格式化时间戳
时间戳通常不符合人类可读的格式,因此我们在显示时间的时候需要将时间戳转换为可读的日期/时间字符串。PHP中有一个date()函数可以用来格式化时间。
date()函数的第一个参数是格式化字符串,其中可以包含各种标识符来表示不同的时间部分。例如,常见的标识符有:
Y:四位数的年份
m:两位数的月份
d:两位数的日期
H:两位数的小时数(24小时制)
i:两位数的分钟数
s:两位数的秒数
例如,将时间戳格式化为年-月-日的形式:
echo date('Y-m-d', time()); // 输出:2019-08-16
其中,第二个参数是可选的,如果不传入,默认使用当前时间戳。
四、如何在时间戳中加减指定时间间隔
在实际开发中,经常需要在指定时间戳中增加或减去一些时间间隔,例如一小时、一天、一个月等等。PHP中可以使用strtotime()函数来实现这一功能。
strtotime()函数的第一个参数为时间戳,第二个参数为时间间隔,可以是任何表示时间的字符串。例如,将现在的时间戳加上一小时,并输出可读的日期和时间:
$timestamp = time() + 3600; // 在当前时间戳中加上一小时的时间间隔 echo date('Y-m-d H:i:s', $timestamp); // 输出增加一小时后的日期时间
还可以使用相对时间格式,例如:
$timestamp = strtotime('+1 day', time()); // 在当前时间戳中加上一天的时间间隔 echo date('Y-m-d H:i:s', $timestamp); // 输出增加一天后的日期时间
strtotime()函数还可以用来计算时间间隔,例如计算两个时间戳之间的天数差:
$timestamp1 = strtotime('2019-08-15'); $timestamp2 = strtotime('2019-08-20'); $days = ($timestamp2 - $timestamp1) / (60 * 60 * 24); echo $days; // 输出5