Есть ли какой-нибудь файл в системе на основе Unix, который я могу прочитать, чтобы получить то же значение, что time() в php вернет?
3 ответа
PHP функция time() возвращает секунды с начала эпохи Unix. Вы можете отформатировать его как дату и / или время любым удобным для вас способом, используя другие функции PHP.
Команда даты Unix (по крайней мере, версия GNU) может сделать то же самое
# date "+%s"
1319042692
Таким образом, вы можете легко создать файл, содержащий это число, по мере необходимости (например, с помощью функции PHP system ())
Или просто прочитайте это прямо
$secs_since_epoch = system('date "+%s"', $return_value);
Я не могу придумать разумного варианта использования того, о чем вы просите.
- В моей системе время
/proc/cpuinfo
{a | c | m} равно текущему системному времени. - Может быть, вы можете просто выполнить
date
и прочитать ее вывод?
В отличие от моего другого ответа о чтении метаданных, просматривая /proc для "sec", я действительно нашел файл, содержащий текущее системное время:
/proc/timer_list
содержит два значения: время безотказной работы в nsec (теперь в ...) и немного дальше во время запуска системы, также в nsec (.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, без смещения или что-то подобное. Но я не уверен насчет того, о чем этот файл на самом деле, просто нашел его срывом.
Если у вас также есть терминальный доступ для разработки, вы можете попробовать себя:
grep 131904 `find /sys 2>/dev/null` 2>/dev/null
чтобы найти файлы, содержащие первые цифры метки времени unix (замените, если будете использовать позже) в /sys, к которому у вас есть доступ.