พอดีวันนี้เขียนโปรแกรม ๆหนึ่ง ที่ต้องแสดง วันที่สร้าง และวันที่อัปเดต รายการ ซึ่งผมเก็บลงฐานข้อมูลในรูปแบบ 2008-01-31 12:10:21
เมื่อผมนำรายการมาแสดง มันจะเป็นแบบนี้
หัวข้อ | create | modify |
---|---|---|
รายงานจำนวนงานถ่วงล้อ | 2008-05-13 12:00:01 | 2008-05-20 00:10:30 |
รายงานยอดเจียรจานดิสก์เบรกหลัง | 2008-05-13 11:51:42 |
วันที่สร้าง ก็เป็นอย่างที่เห็น วันที่อัปเดต ก็เป็นอย่างที่เห็น ดูยากเนอะ ก็เลยมีความคิดแว้บขึ้นมา เปลี่ยนวันที่แก้ไข จากอย่างที่เห็น ให้เป็น
หัวข้อ | create | modify |
---|---|---|
รายงานจำนวนงานถ่วงล้อ | 2008-05-13 12:00:01 | 1 วัน 10ชั่วโมง 5นาที 20 วินาที ผ่านมา |
รายงานยอดเจียรจานดิสก์เบรกหลัง | 2008-05-13 11:51:42 |
ดูง่ายกว่าเย้อะะะะ…
ว่าแล้วก็ลงมือเขียนฟังก์ชั่น ผลก็ออกมาอย่างที่เห็นด้านล่างแหล่ะครับ
/** * Convert date * * @author platoosom * @email [email protected] * @created 2008-06-04 11:15 * @modified 2008-06-04 11:15 * * input : array( 'begin'=>date/datetime , 'end'=>date/datetime ) * output : string */ if( ! function_exists( 'compare_date' ) ) { function compare_date( $array ) { if( ! is_array( $array ) ){ return ;} if( ( ! array_key_exists( 'begin' , $array )) || empty( $array['begin'] )){ return ;} if( ( ! array_key_exists( 'end' , $array )) || empty( $array['end'] )){ return ;} $begin_time = strtotime( $array['begin'] ); $end_time = strtotime( $array['end'] ); $amount_time = $end_time - $begin_time ; $list = array( 'day'=>array( 'วัน' , '86400' ) , 'hour'=>array( 'ชั่วโมง' , '3600' ) , 'munite'=>array( 'นาที' , '60' ) , 'second'=>array( 'วินาที' , '1' ) ); foreach( $list as $value ): $result = floor( $amount_time / $value[1] ); if( $result > 0 ){ $return[] = $result; $return[] = $value[0]; } $amount_time = $amount_time % $value[1]; endforeach; return implode( ' ' , $return ).' ผ่านมา'; } } |
วิธีเรียกใช้งาน จะส่ง ปี-เดือน-วัน เข้าไปอย่างเดียว หรือว่าส่ง ปี-เดือน-วัน ชั่วโมง:นาที:วินาที เข้าไปก็ได้ครับผม
echo compare_date( array( 'begin'=>'2008-01-31 10:10:10','end'=>'2008-02-01 20:11:30' ) ); echo compare_date( array('begin'=>'2008-01-31','end'=>'2008-02-01')); echo compare_date( array('begin'=>'2008-01-31','end'=>date( 'Y-m-d H:i:s' ) )); |
Leave a Reply