composer 不记录本地更新时间,composer show --latest 的 time 是 packagist 发布时间;查本地实际更新时间应检查 vendor/ 目录下包文件的修改时间戳,而非 composer.lock 中的 time 字段。

Composer 本身不记录、也不暴露包的“最近更新时间”——composer show 输出的 time 字段是 Packagist 上该版本的发布时间,不是你本地更新时间,也不是 Git 仓库的 commit 时间。想查真实时间,得明确目标:你要的是作者发版时间?还是你机器上最后一次安装/升级时间?这两者完全不同,方法也完全不同。
composer show --latest 显示的 time 是 Packagist 发布时间
运行 composer show vendor/package --latest,输出里类似 latest : 3.5.0 2024-03-15 这样的日期,来自 Packagist API 的 time 字段,代表该版本被提交到 Packagist 的时间(通常 ≈ GitHub tag 创建时间)。但它不是:
- GitHub 上对应 commit 的
git log -1 --format=%ai时间(可能早几小时) - 包作者在 CHANGELOG.md 里写的“2024-03-16 发布”(可能手动填错)
- 你本地执行
composer update的时间(完全无关)
这个时间对判断“是否值得升级”有参考价值,但不能用来审计你自己的操作行为。
查本地实际更新时间:看 vendor 目录文件修改时间
最可靠的方式是检查 vendor/ 下包目录本身的最后修改时间——Composer 安装或更新时会写入文件,这个时间戳在绝大多数场景下就是你上次操作的时间:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Linux/macOS:
stat -c "%y" vendor/vendor-name/package-name | cut -d" " -f1 - Windows cmd:
dir vendor\vendor-name\package-name /T:C(显示创建时间)或/T:W(显示最后写入时间) - 批量查常用包(Linux):
find vendor -maxdepth 2 -type d -name 'composer.json' -exec dirname {} \; | xargs -I{} sh -c 'echo "$(basename {}): $(stat -c "%y" {} 2>/dev/null | cut -d" " -f1)"'
注意:IDE 自动格式化、杀毒软件扫描、或某些同步工具可能刷新文件时间戳,导致轻微偏差,但比任何元数据都贴近真实操作。
别信 composer.lock 里的 time 字段
composer.lock 中每个包确实有 "time": "2024-05-20T14:22:33+00:00",但这只是 Composer 写 lock 文件时,从 Packagist 拉下来的版本发布时间,**和你的本地操作毫无关系**。即使你一年没跑过 composer update,只要重装依赖(比如删掉 vendor 后 composer install),这个字段也不会变——它不是你机器上的时间戳。
镜像源不影响时间字段,但影响你能看到哪些版本
运行 composer config repo.packagist.org 可确认当前实际使用的镜像地址(如阿里云、腾讯云),但镜像只缓存 Packagist 的元数据,time 字段内容与官方源一致。不过:
- 镜像同步延迟可能导致
composer show --latest看不到最新版(等几个小时或换源重试) - 私有镜像若未配置
notify或未及时抓取,time字段可能滞后数天 -
composer outdated结果受镜像可用版本影响,但不会改变任何time值的含义
真正容易被忽略的点是:同一个包,在不同镜像、不同稳定性设置(minimum-stability)、甚至不同 PHP 平台约束下,--latest 返回的版本和对应 time 都可能不同——它不是固定值,而是查询上下文的产物。










