PHP変換snmpの時間フォーマット
2557 ワード
function convert_snmp_timeticks($timeticks) {
if(!is_numeric($timeticks)) {
return FALSE;
}
// ,
if(is_string($timeticks)) {
$timeticks = intval($timeticks);
}
$TICKS_PER_SECOND = 100;
$TICKS_PER_MINUTE = $TICKS_PER_SECOND * 60;
$TICKS_PER_HOUR = $TICKS_PER_MINUTE * 60;
$TICKS_PER_DAY = $TICKS_PER_HOUR * 24;
$seconds = $timeticks / $TICKS_PER_SECOND % 60;
$minutes = $timeticks / $TICKS_PER_MINUTE % 60;
$hours = $timeticks / $TICKS_PER_HOUR % 24;
$days = $timeticks / $TICKS_PER_DAY;
return sprintf("%d , %d %02d %02d ", $days, $hours, $minutes, $seconds);
}
echo convert_snmp_timeticks("81090200");
出力:9日間、9時間15分02秒
もっと簡単な方法でphp公式サイトを使う例
if(@ $sysUpTime = snmpget("127.0.0.1", "public", "iso.3.6.1.2.1.1.3.0")){
if(snmp_get_quick_print()){
sscanf($sysUpTime, "%d:%d:%d:%d.%d",$day,$hour,$minute,$sec,$ticks);
$sysUpTime = "$day days, $hour:$minute:$sec.$ticks";
}else{
$sysUpTime = ereg_replace("Timeticks: \([0-9]+\) ","",$sysUpTime);
}
}
var_dump($sysUpTime);
出力:
string(18) "9 days, 9:28:37.00"