พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
PHP development / จะหาผลต่างของเวลาใช้ยังไงครับ
เอิน
เอิน
Sun 9 Jul 2006 16:30:00
จะหาผลต่างของเวลาใช้ยังไงครับ
เช่น 01.00 - 02.00 คือ
(02.00-01.00)=01.00 หรือ 1 ชม. ต้องใช้ function ไร

ลองใช้ mktime ได้ไหมครับ
พอลองดูแล้วมัน error เป็น 08:00 Jan-01-1970 ตลอดเลยครับ

$mk_data=mktime(1, 0, 0, 10, 18, 2004);
$mk_data2=mktime(2, 0, 0, 10, 18, 2004);
$mk_data3=($mk_data2-$mk_data);

echo date("H:i M-d-Y", $mk_data3);

และถ้าไม่เอา วันเดือนปี  จะเอาเฉพาะ ชม. กับ นาที ก็ไม่ได้ เช่น
mktime(1, 0, 0, 0, 0, 0);

Administrator
Sun 9 Jul 2006 19:08:06
ใช้ mktime() นั่นล่ะครับ

คุณลองทำการ echo $mk_data3; จะเห็นว่าได้ค่าเป็น 3600 ซึ่งเป็นค่าวินาทีที่ต่างกันของเวลา 2 ค่านั้นครับ mktime() จะคืนค่ามาเป็น unixtimestamp() เริ่มนับตั้งแต่ January 1 1970 00:00:00 GMT ซึ่งที่ได้ 08:00 Jan-01-1970 ก็ถูกต้องแล้วครับ เนื่องจากประเทศไทยมีค่าต่างของเวลา จาก GMT +7 และผลการลบได้ +1 ทำให้เวลาเป็น 08.00 ครับ

ถ้าต้องการหาค่าเวลาก็ใช้

<?
$mk_data=mktime(1, 0, 0, 10, 18, 2004);
$mk_data2=mktime(2, 0, 0, 10, 18, 2004);
$mk_data3=($mk_data2-$mk_data);
$days=intval($mk_data3/86400);
$remain=$mk_data3%86400;
$hours=intval($remain/3600);
$remain=$remain%3600;
$mins=intval($remain/60);
$secs=$remain%60;

echo $days."D ".$hours."H ".$mins."m".$secs."s";
?>

เอิน
เอิน
Mon 10 Jul 2006 13:45:49
ขอบคุณมาก ๆ ครับ ถ้าจะเอา ปีกับเดือนด้วยหล่ะครับ ต้องหารอะไร ครับ

และถ้าไม่เอา วันเดือนปี  จะเอาคือไ้ด้ค่ามาเฉพาะ ชม. กับ นาที นี่จะเก็บเป็น mktime ยังไงครับ คือผมลองใส่ 0 แล้วมันไม่ได้อ่ะ
mktime(1, 0, 0, 0, 0, 0);

Administrator
Mon 10 Jul 2006 15:28:46
$days=intval($mk_data3/86400);
$remain=$mk_data3%86400;
$hours=intval($remain/3600);
$remain=$remain%3600;
$mins=intval($remain/60);
$secs=$remain%60;

จะเห็นว่าเป็นการหารแล้วหาเศษไปเรื่อยๆครับ และตัวที่หารก็เป็นค่าวินาทีในแต่ละระดับครับ
1 นาที = 60 วินาที, 1 ชั่วโมง = 3600 วินาที, 1 วัน = 86400 วินาที, 1 เดือน = 2592000 วินาที, 1 ปี = 31104000 วินาที เอาไปหารแล้วหาเศษเรื่อยๆครับ

ส่วนที่ทำไมใส่ 0 แทนค่าที่ไม่อยากให้มันคิดนั้นก็ได้แจ้งไว้ด้านบนแล้วครับ ว่าฟังก์ชั่น mktime มีไว้ใช้ทำอะไรให้ค่าอะไร
Administrator
Mon 4 Sep 2006 11:53:05
ผมย้ายกระทู้ของคุณปุ้ยไปที่
http://forum.modoeye.com/module12-419.html
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login