有没有我可以读取的包含时间的文件

有没有我可以读取的包含时间的文件

在基于 unix 的系统中是否存在我可以读取的文件,以获取与 php 中的 time() 返回相同的值?

答案1

与我其他的读取元数据的答案不同,通过 /proc 搜索“sec”,我确实找到了一个包含当前系统时间的文件:

/proc/timer_list包含两个值:以纳秒为单位的正常运行时间(现在在...)以及稍晚一些的系统启动时间,也以纳秒为单位(.offset)。如果将它们相加并除以 10^9,您就会得到当前时间。

Timer List Version: v0.6
HRTIMER_MAX_CLOCK_BASES: 2
now at 2089173850911347 nsecs

cpu: 0
 clock 0:
  .base:       0000000000000000
  .index:      0
  .resolution: 1 nsecs
  .get_time:   ktime_get_real
  .offset:     1316955129915578545 nsecs

编辑:还有另一个:/sys/devices/pnp0/00:05/rtc/rtc0/since_epoch似乎包含真正的 unix 时间戳,没有偏移量或类似内容。但我不确定这个文件到底是什么,只是在 grepping 时发现它。

如果您还具有一些用于开发的终端访问权限,您可以自己尝试:

grep 131904 `find /sys 2>/dev/null` 2>/dev/null

在您有权访问的 /sys 中查找包含 unix 时间戳前几位数字的文件(如果稍后使用则替换)。

答案2

  • 在我的系统上,/proc/cpuinfo的{a|c|m}时间等于当前系统时间。
  • 也许您可以执行date并读取其输出?

答案3

PHP 的 time() 函数返回自 Unix 纪元以来的秒数。您可以使用其他 PHP 函数以任何您想要的方式将其格式化为日期和/或时间。

Unix 的 date 命令(至少是 GNU 版本)可以做同样的事情

# date "+%s"
1319042692

因此,您可以根据需要轻松创建包含该数字的文件(例如,使用 PHP 的 system() 函数)

或者直接阅读

$secs_since_epoch = system('date "+%s"', $return_value);

不过,对于您所问的问题,我想不出一个合理的用例。

相关内容