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

PHP函数:如何进行时间戳转换?

发布时间:2023-06-18 15:12:53

时间戳(timestamp)是指从某个固定日期(通常是1970年1月1日00:00:00 UTC)开始的秒数或毫秒数。在编程中,我们经常需要将时间戳转换为人类可读的格式,或从人类可读的格式中获取时间戳。在PHP中,有许多内置函数可用于进行时间戳转换。

1.将时间戳转换为日期时间格式

使用PHP内置函数date(),我们可以将时间戳转换为日期时间格式。

语法:date(string $format [, int $timestamp = time()])

格式化参数$format包含将时间戳转换为的日期和时间的格式。它可以包含以下占位符:

- Y - 四位数的年份

- y - 两位数的年份

- m - 两位数的月份(01-12)

- n - 月份(1-12)

- d - 两位数的日期(01-31)

- j - 日期(1-31)

- H - 24小时格式的小时(00-23)

- h - 12小时格式的小时(01-12)

- i - 两位数的分钟数(00-59)

- s - 两位数的秒数(00-59)

- a - 小写的上午或下午(am或pm)

- A - 大写的上午或下午(AM或PM)

例如:

$t = time(); //获取当前时间戳

echo date("Y-m-d H:i:s", $t); //输出当前日期和时间

输出结果:

2021-08-27 10:30:00

2.将日期时间格式转换为时间戳

与date()函数相反,我们可以使用PHP内置函数strtotime()将日期时间格式转换为时间戳。

语法:strtotime(string $datetime [, int $now = time()])

参数$datetime指定日期时间格式,我们可以使用各种日期时间格式,例如:"2019-05-01 12:00:00","1 day ago","next Monday"等。

参数$now指定时间戳,用作参考时间。默认情况下,它是当前时间。

例如:

$datetime = "2021-08-27 10:30:00";

echo strtotime($datetime); //输出时间戳

输出结果:

1630048200

3.将Unix时间戳转换为ISO8601日期时间格式

ISO8601是日期时间格式的国际标准,它以“年-月-日T小时:分钟:秒”的格式表示。我们可以使用PHP内置函数date()和gmdate()将Unix时间戳转换为ISO8601格式。

语法:date("c", $timestamp)

$c是ISO8601日期时间格式的格式符。

例如:

$timestamp = time();

echo date("c", $timestamp); //输出ISO8601格式的日期和时间

输出结果:

2021-08-27T10:30:00+08:00

4.将ISO8601日期时间格式转换为时间戳

使用PHP内置函数strtotime(),我们可以将ISO8601日期时间格式转换为时间戳。

例如:

$datetime = "2021-08-27T10:30:00+08:00";

echo strtotime($datetime); //输出时间戳

输出结果:

1630048200

5.格式化秒数

有时候,我们需要将秒数转换为人类可读的格式,例如将97秒格式化为“1分钟37秒”。

我们可以自己编写一个函数来完成这个任务。

例如:

function formatSeconds($seconds) {

    $h = floor($seconds / 3600); //小时数

    $m = floor(($seconds - $h * 3600) / 60); //分钟数

    $s = floor($seconds - $h * 3600 - $m * 60); //秒数

    if($h > 0) {

        return sprintf("%d小时%d分钟%d秒", $h, $m, $s);

    }

    elseif($m > 0) {

        return sprintf("%d分钟%d秒", $m, $s);

    }

    else {

        return sprintf("%d秒", $s);

    }

}

例如:

echo formatSeconds(97); //输出1分钟37秒

输出结果:

1分钟37秒

总结

以上是PHP中进行时间戳转换的一些常用函数。在编程中,我们经常需要将时间戳转换为人类可读的格式,或从人类可读的格式中获取时间戳。熟练掌握这些函数可以帮助我们更好地处理日期和时间数据。