You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP代码从Instagram文件名前缀提取日期?

通过PHP从Instagram文件名的数字前缀提取对应日期

完全可以实现,Instagram文件名中下划线前的数字是媒体ID,基于Snowflake算法生成,其中包含了时间戳信息,我们可以通过位运算提取并转换为可读日期。

实现步骤与代码示例

  • 提取文件名中的媒体ID(下划线前的数字部分)
  • 通过位运算从媒体ID中解析出时间偏移,结合Instagram的时间起始点计算Unix时间戳
  • 将时间戳转换为所需格式的日期
<?php
// 替换为你的目标文件名
$filename = '504273856298686966_186593000.mp4';

// 1. 提取下划线前的媒体ID
$mediaId = explode('_', $filename)[0];

// 2. 解析时间戳:Instagram Snowflake起始于2010-01-01 UTC,媒体ID前41位是毫秒级时间偏移
$timestampMs = (int)$mediaId >> 23;
$epochStart = strtotime('2010-01-01 00:00:00 UTC');
$unixTimestamp = $epochStart + ($timestampMs / 1000);

// 3. 转换为可读日期,可自定义时区和格式
$date = (new DateTime())->setTimestamp($unixTimestamp);

// 输出UTC标准日期
echo "UTC日期:" . $date->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d H:i:s') . PHP_EOL;
// 输出国内时区日期
echo "本地日期:" . $date->setTimezone(new DateTimeZone('Asia/Shanghai'))->format('Y-m-d H:i:s') . PHP_EOL;
?>

注意事项

  • 确保PHP运行环境支持64位整数(主流服务器均支持,若为32位环境需用BCMath扩展处理大数字)
  • 可根据需求调整日期格式(如'Y-m-d'仅显示年月日)和时区

内容的提问来源于stack exchange,提问作者xrescom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 21:15:36