มีไฟล์ใดในระบบที่ใช้ยูนิกซ์ที่ฉันสามารถอ่านได้เพื่อรับค่าเดิมที่เวลา () ใน php จะกลับมา?
date +%s
หากคุณสามารถรันคำสั่งใช้
time()
ฟังก์ชั่น ทำไมคุณต้องอ่านจากไฟล์?
มีไฟล์ใดในระบบที่ใช้ยูนิกซ์ที่ฉันสามารถอ่านได้เพื่อรับค่าเดิมที่เวลา () ใน php จะกลับมา?
date +%s
หากคุณสามารถรันคำสั่งใช้
time()
ฟังก์ชั่น ทำไมคุณต้องอ่านจากไฟล์?
คำตอบ:
ซึ่งแตกต่างจากคำตอบอื่น ๆ ของฉันอ่านข้อมูลเมตา, grepping through / 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 จริงไม่มีการชดเชยหรือเช่นนั้น แต่ฉันไม่แน่ใจเกี่ยวกับสิ่งที่ไฟล์นี้เป็นจริงเกี่ยวกับเพียงแค่พบว่า grepping
หากคุณมีการเข้าถึงเทอร์มินัลเพื่อการพัฒนาคุณสามารถลองด้วยตัวเอง:
grep 131904 `find /sys 2>/dev/null` 2>/dev/null
เพื่อค้นหาไฟล์ที่มีตัวเลขตัวแรกของการประทับเวลา unix (แทนที่หากใช้ในภายหลัง) ใน / sys คุณสามารถเข้าถึงได้
/proc/cpuinfo
{a | c | m} เท่ากับเวลาระบบปัจจุบันdate
และอ่านจากเอาต์พุตได้?stat cpuinfo
) เวลาไม่ได้อยู่ในไฟล์ แต่ข้อมูลเมตาของไฟล์เท่ากับ
ฟังก์ชัน time's () PHP ส่งคืนวินาทีนับตั้งแต่ยุค Unix คุณสามารถจัดรูปแบบเป็นวันที่และ / หรือเวลาในแบบที่คุณต้องการโดยใช้ฟังก์ชั่น PHP อื่น ๆ
คำสั่งวันที่ของ Unix (อย่างน้อยรุ่น GNU) สามารถทำเช่นเดียวกัน
# date "+%s"
1319042692
ดังนั้นคุณสามารถสร้างไฟล์ที่มีหมายเลขนั้นได้อย่างง่ายดายตามต้องการ (เช่นใช้ฟังก์ชั่นระบบของ PHP)
หรือเพียงแค่อ่านโดยตรง
$secs_since_epoch = system('date "+%s"', $return_value);
ฉันไม่สามารถนึกถึงกรณีการใช้งานที่สมเหตุสมผลสำหรับสิ่งที่คุณถาม