Karp 的技术博客

在 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"; // 输出:日期格式: 2021-10-01 00:00:00.000

使用 date() 函数

$milliseconds = 1633036800000; // 示例毫秒级时间戳
$seconds = $milliseconds / 1000; // 转换为秒
$date = date('Y-m-d H:i:s', $seconds);
echo "日期格式: " . $date . "\n"; // 输出:日期格式: 2021-10-01 00:00:00

3. 日期格式转换为毫秒级时间戳

要将日期格式转换为毫秒级时间戳,可以使用 strtotime() 函数获取秒级时间戳,然后乘以 1000。

示例代码

$dateString = '2021-10-01 00:00:00'; // 示例日期格式
$timestamp = strtotime($dateString); // 获取秒级时间戳
$milliseconds = $timestamp * 1000; // 转换为毫秒级时间戳
echo "毫秒级时间戳: " . $milliseconds . "\n"; // 输出:毫秒级时间戳: 1633036800000

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"; // 输出:毫秒级时间戳: 1633036800000
?>

php

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2024年10月21日 06:13
0

目录

来自 《PHP 毫秒级时间戳与日期格式互换》