当前位置: 首页> 最新文章列表> 使用 hexdec 解析十六进制的时间戳或ID

使用 hexdec 解析十六进制的时间戳或ID

gitbox 2025-05-28

什么是 hexdec()

hexdec() 是 PHP 内置的函数之一,其作用是将十六进制字符串(以字母和数字组成,0-9, a-f)转换为十进制整数。这对于处理某些外部系统、日志记录或数据库中的数据特别有用,尤其是当这些数据以十六进制形式传递或存储时。

函数签名:

int hexdec(string $hex_string)

解析十六进制时间戳示例

假设我们接收到一个十六进制格式的时间戳,例如:

$hexTimestamp = '5f4dcc3b';

我们希望将其转化为人类可读的日期时间。

<?php

$hexTimestamp = '5f4dcc3b';
$decimalTimestamp = hexdec($hexTimestamp);

echo "十六进制时间戳:$hexTimestamp\n";
echo "十进制时间戳:$decimalTimestamp\n";
echo "可读时间:".date('Y-m-d H:i:s', $decimalTimestamp)."\n";

?>

输出可能类似:

十六进制时间戳:5f4dcc3b
十进制时间戳:1598887867
可读时间:2020-08-31 16:51:07

在URL参数中使用十六进制ID

十六进制格式的ID经常被用于生成链接,比如某个资源的唯一标识符:

<?php

$hexId = '1a2b3c4d';
$decimalId = hexdec($hexId);

$url = "https://gitbox.net/resource.php?id=$decimalId";

echo "原始十六进制ID:$hexId\n";
echo "转换后的URL:$url\n";

?>

生成的链接将具有更易于识别和处理的十进制ID:

原始十六进制ID:1a2b3c4d
转换后的URL:https://gitbox.net/resource.php?id=439041101

这种转换在处理短链接、API参数、日志分析或数据库查询时都非常实用。

错误处理提示

虽然 hexdec() 是个非常直接的函数,但使用时应注意输入值的合法性。例如,非十六进制字符将被忽略,可能导致意料之外的结果:

<?php

$badHex = 'zz123'; // 非法字符
echo hexdec($badHex); // 输出为0,因为开头没有合法字符

?>

建议在正式使用前对输入值进行验证或使用正则判断其合法性。