在 PHP 中,处理时间戳和日期格式的转换是常见的需求。下面将介绍如何在毫秒级时间戳和日期格式之间进行互换。
1. 获取当前时间的毫秒级时间戳
可以使用 microtime() 函数获取当前时间的微秒时间戳,然后将其转换为毫秒级时间戳。
示例代码
$milliseconds = round(microtime(true) * 1000); echo "当前毫秒级时间戳: " . $milliseconds . "\n";
|
2. 毫秒级时间戳转换为日期格式
要将毫秒级时间戳转换为日期格式,可以使用 DateTime 类或 date() 函数。
使用 DateTime 类
$milliseconds = 1633036800000; $datetime = DateTime::createFromFormat('U.u', sprintf('%d.%03d', floor($milliseconds / 1000), $milliseconds % 1000)); echo "日期格式: " . $datetime->format('Y-m-d H:i:s.u') . "\n";
|
使用 date() 函数
$milliseconds = 1633036800000; $seconds = $milliseconds / 1000; $date = date('Y-m-d H:i:s', $seconds); echo "日期格式: " . $date . "\n";
|
3. 日期格式转换为毫秒级时间戳
要将日期格式转换为毫秒级时间戳,可以使用 strtotime() 函数获取秒级时间戳,然后乘以 1000。
示例代码
$dateString = '2021-10-01 00:00:00'; $timestamp = strtotime($dateString); $milliseconds = $timestamp * 1000; echo "毫秒级时间戳: " . $milliseconds . "\n";
|
4. 综合示例
以下是一个完整的示例,演示了如何在毫秒级时间戳和日期格式之间进行互换:
<?php
$milliseconds = round(microtime(true) * 1000); echo "当前毫秒级时间戳: " . $milliseconds . "\n";
$datetime = DateTime::createFromFormat('U.u', sprintf('%d.%03d', floor($milliseconds / 1000), $milliseconds % 1000)); echo "日期格式: " . $datetime->format('Y-m-d H:i:s.u') . "\n";
$dateString = '2021-10-01 00:00:00'; $timestamp = strtotime($dateString); $milliseconds = $timestamp * 1000; echo "毫秒级时间戳: " . $milliseconds . "\n"; ?>
|