เรื่องของเวลา อีกครั้ง
ปกติผมมักจะเก็บเวลาในรูป mktime คือเป็นตัวเลขล้วนๆ ซึ่งผมคิดว่ามันง่ายต่อการเปรียบเทียบภายนอกมากกว่า หากเราไม่ต้องการเปรียบเทียบโดยฟังก์ชั่นของ MySQL ซึ่งการเก็บเป็น mktime ทำให้เราสามารถคำนวณช่วงหรือความแตกต่างของเวลาได้ โดยการเอาเวลาที่ได้มาบวกหรือลบกันตรงๆ
เวลา mktime หาได้จาก
โดยที่ $hour คือเวลาทดของ server หากเวลาไม่ตรงกับเครื่อง computer ที่บ้าน เป็นชั่วโมง อาจเป็นบวกหรือลบก็ได้ ส่วน $min ก็เช่นกัน เป็นเวลาทดในหน่วยนาที
เวลาปัจจุบันจะหาได้จาก
$mtime จะให้ผลลัพท์ในรูปข้อความเวลา 24 ชม. เช่น 24:00
โดยปกติหากต้องการเก็บเวลาเพื่อเป็น log มักใช้ฟังก์ชั่นนี้
ซึ่ง $logtime จะคืนค่าเวลาเป็น มิลลิวินาที ซึ่งเราอาจใช้ค่านี้เก็บเพื่อนำมาคำนวณได้ เช่นการคำนวณเวลาในการอยู่บนระบบ โดยการเก็บเวลานี้ไว้ตอน login และเมื่อ logout ก็ให้เอาเวลาปัจจุบันไปลบกับเวลาที่เก็บไว้ตอนเข้าระบบ ก็จะได้เวลาอยู่บนระบบ หน่วยเป็น วินาที ซึ่งหากต้องการแปลงกลับเป็น วัน ชม.นาที ก็สามารถคำนวณกลับได้โดยฟังก์ชั่นนี้
$online ได้มาจาก เวลาตอน logout ลบด้วย เวลาตอน login
เวลา mktime หาได้จาก
<?
$mmktime = mktime( date( "H" ) + $hour, date( "i" ) + $min );
?>
โดยที่ $hour คือเวลาทดของ server หากเวลาไม่ตรงกับเครื่อง computer ที่บ้าน เป็นชั่วโมง อาจเป็นบวกหรือลบก็ได้ ส่วน $min ก็เช่นกัน เป็นเวลาทดในหน่วยนาที
เวลาปัจจุบันจะหาได้จาก
<?
$mtime = date( "H:i" , $mmktime );
?>
$mtime จะให้ผลลัพท์ในรูปข้อความเวลา 24 ชม. เช่น 24:00
โดยปกติหากต้องการเก็บเวลาเพื่อเป็น log มักใช้ฟังก์ชั่นนี้
<?
$logtime = date( "U" , $mmktime );
?>
ซึ่ง $logtime จะคืนค่าเวลาเป็น มิลลิวินาที ซึ่งเราอาจใช้ค่านี้เก็บเพื่อนำมาคำนวณได้ เช่นการคำนวณเวลาในการอยู่บนระบบ โดยการเก็บเวลานี้ไว้ตอน login และเมื่อ logout ก็ให้เอาเวลาปัจจุบันไปลบกับเวลาที่เก็บไว้ตอนเข้าระบบ ก็จะได้เวลาอยู่บนระบบ หน่วยเป็น วินาที ซึ่งหากต้องการแปลงกลับเป็น วัน ชม.นาที ก็สามารถคำนวณกลับได้โดยฟังก์ชั่นนี้
<?
$day = intval( $online / 86400 ); // จำนวนวัน
$hours = intval( ( $online % 86400 ) / 3600 ); // จำนวน ชั่วโมง
$mins = intval( ( ( $online % 86400 ) % 3600 ) / 60 ); // จำนวน นาที
$secs = intval( ( ( ( $online % 86400 ) % 3600) % 60 ) ); // จำนวน วินาที
?>
$online ได้มาจาก เวลาตอน logout ลบด้วย เวลาตอน login