เอิน

Sun 9 Jul 2006 16:30:00
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);
เช่น 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);
ใช้ 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 ครับ
ถ้าต้องการหาค่าเวลาก็ใช้
คุณลองทำการ 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
Mon 10 Jul 2006 13:45:49
ขอบคุณมาก ๆ ครับ ถ้าจะเอา ปีกับเดือนด้วยหล่ะครับ ต้องหารอะไร ครับ
และถ้าไม่เอา วันเดือนปี จะเอาคือไ้ด้ค่ามาเฉพาะ ชม. กับ นาที นี่จะเก็บเป็น mktime ยังไงครับ คือผมลองใส่ 0 แล้วมันไม่ได้อ่ะ
mktime(1, 0, 0, 0, 0, 0);
และถ้าไม่เอา วันเดือนปี จะเอาคือไ้ด้ค่ามาเฉพาะ ชม. กับ นาที นี่จะเก็บเป็น mktime ยังไงครับ คือผมลองใส่ 0 แล้วมันไม่ได้อ่ะ
mktime(1, 0, 0, 0, 0, 0);
$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 มีไว้ใช้ทำอะไรให้ค่าอะไร
$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 มีไว้ใช้ทำอะไรให้ค่าอะไร

















