Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > รบกวนช่วยเรื่อง mktime ทีครับ มีตัวอย่างโค้ดด้านใน แบบว่าจะนำไปประยุกต์ใช้อ่ะครับ



 

รบกวนช่วยเรื่อง mktime ทีครับ มีตัวอย่างโค้ดด้านใน แบบว่าจะนำไปประยุกต์ใช้อ่ะครับ

 



Topic : 074747



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



Code (PHP)
<?php
$rdate  =  mktime(8,0,0,3,31,2011);
$ftart  =  mktime(17,0,0,3,30,2011);
$online=$rdate-$ftart;
   $day = intval( $online / 86400 ); // จำนวนวัน
  $hours = intval( ( $online % 86400 ) / 3600 ); // จำนวน ชั่วโมง
  $mins = intval( ( ( $online % 86400 ) % 3600 ) / 60 ); // จำนวน นาที
  $secs = intval( ( ( ( $online % 86400 ) % 3600) % 60 ) ); // จำนวน วินาที
  
  print "$day วัน $hours ชั่วโมง $mins นาที   $secs  วินาที ";
?>


คือผมไม่รู้ว่าจะส่งค่าใหกับ mktime ยังไงอ่ะครับ เหลือจุดนี้จุดเดียวที่ติดอ่ะครับ ส่วนตัวโค้ดที่เหลือพอเข้าใจอยู่บ้างครับ
ช่วยทีครับ

อ้อ วันที่และเวลา ที่นำมาคิด ได้จากการ query จากฐานข้อมูลครับ
รูปแบบ Y-m-d h-i-s ครับ

ตัวอย่างจาก https://www.thaicreate.com/php/forum/058080.html



Tag : PHP, MySQL, JavaScript









ประวัติการแก้ไข
2012-02-29 11:01:00
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-02-29 10:59:57 By : akkaneetha View : 3367 Reply : 10
 

 

No. 1



โพสกระทู้ ( 3,750 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

จะใช้อะไรจากฟังก์ชั่นนี้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 11:35:25 By : Dragons_first
 


 

No. 2



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

สิ่งที่ต้องการคือ ผลต่างของเวลาเป็น ชั่วโมงและนาที เท่านั้นครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 11:39:15 By : akkaneetha
 

 

No. 3



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


มันก็ได้แล้วนี่ครับ ลอง echo 3 ตัวนี้ออกมาดูเลยครับ

$hours
$mins
$secs


ถ้าทำแบบบันทัดนี้มันไม่ออกมาหรอกครับ

Code (PHP)
print "$day วัน $hours ชั่วโมง $mins นาที   $secs  วินาที ";



ลองดูตัวอย่างที่นี่ดูประกอบด้วยก็ได้ครับ

http://www.goragod.com/knowledge/%E0%B9%80%E0%B8%81%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%A7%E0%B8%B1%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88.html?q=mktime


ประวัติการแก้ไข
2012-02-29 12:00:04
2012-02-29 12:02:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 11:59:34 By : Songkram
 


 

No. 4



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ก็ echo ออกมาได้แล้วแหละครับ แต่ค่าพวกนั้นเป็นค่าที่เซ็ตไว้
Code (PHP)
$rdate  =  mktime(8,0,0,3,31,2011);
$ftart  =  mktime(17,0,0,3,30,2011);

แต่ที่ผมไม่รู้คือ ถ้าดึงข้อมูลขึ้นมาจากฐานข้อมูล จะนำค่า วันที่และเวลา ใส่หรือส่งให้ตัวแปร $rdate กับ $ftart ยังไงอ่ะครับ
ยังทำไม่ได้เลย ถ้าส่งค่าไปตัวแปร สองตัวนี้ได้ก็จบแล้วละครับ


ประวัติการแก้ไข
2012-02-29 13:50:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 13:50:19 By : akkaneetha
 


 

No. 5



โพสกระทู้ ( 3,750 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

ใช้อันนี้ครับ

Code (PHP)
<?php
	 function DateDiff($strDate1,$strDate2)
	 {
				return (strtotime($strDate2) - strtotime($strDate1))/  ( 60 * 60 * 24 );  // 1 day = 60*60*24
	 }
	 function TimeDiff($strTime1,$strTime2)
	 {
				return (strtotime($strTime2) - strtotime($strTime1))/  ( 60 * 60 ); // 1 Hour =  60*60
	 }
	 function DateTimeDiff($strDateTime1,$strDateTime2)
	 {
				return (strtotime($strDateTime2) - strtotime($strDateTime1))/  ( 60 * 60 ); // 1 Hour =  60*60
	 }

	 echo "Date Diff = ".DateDiff("2008-08-01","2008-08-31")."<br>";
	 echo "Time Diff = ".TimeDiff("00:00","19:00")."<br>";
	 echo "Date Time Diff = ".DateTimeDiff("2008-08-01 00:00","2008-08-01 19:00")."<br>";
?>


ค่าที่อยู่ในวงเล็บให้ใส่ข้อมูลในฐานข้อมูลแทน


ประวัติการแก้ไข
2012-02-29 13:58:41
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 13:57:51 By : Dragons_first
 


 

No. 6



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


จากลิงค์ที่ให้ไป มีวิธีเปลี่ยนค่าวันที่ที่เราอ่านกัน หรือจากในฐานข้อมูล เป็น mktime ด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 13:58:47 By : Songkram
 


 

No. 7



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

@อ้นคุง ดค้ดนี้ผมลองนำมาใช้แล้วครับ แต่ติดตรงที่ว่า คำนวนชั่วโมงออกมา ไม่ได้เป็นนาทีอ่ะครับ อย่าง เวลารวม 9 ชั่ว 30 นาที จะแสดง เป็น 9.5 ชั่วโมง ครับ เลยลองเอาโค้ดอื่นมาปรับใช้อ่ะครับ
@NOOM ลิงค์ที่ให้มาอ่ะครับ พอกดเข้าไปมันก็บอกว่า "ขออภัย ไม่พบหน้าที่เรียก กรุณาตรวจสอบ URL ให้ถูกต้อง" ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 14:21:31 By : akkaneetha
 


 

No. 8



โพสกระทู้ ( 3,750 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

จากตัวอย่างเขาก็มีมาให้ครบ ไม่ทราบว่าท่านก็อปมาหมดหรือเปล่าละครับ

Code (PHP)
<?php
$rdate  =   mktime(8,0,0,3,30,2011);

   $ftart  =  mktime(8,0,0,3,30,2011);
$online=$rdate-$ftart;
   $day = intval( $online / 86400 ); // จำนวนวัน
  $hours = intval( ( $online % 86400 ) / 3600 ); // จำนวน ชั่วโมง
  $mins = intval( ( ( $online % 86400 ) % 3600 ) / 60 ); // จำนวน นาที
  $secs = intval( ( ( ( $online % 86400 ) % 3600) % 60 ) ); // จำนวน วินาที
  
  print "$online   --  $day --  $hours--  $mins--  $secs  ";
?>

<?
function dateDiv($t1,$t2){ // ส่งวันที่ที่ต้องการเปรียบเทียบ ในรูปแบบ มาตรฐาน 2006-03-27 21:39:12

  $t1Arr=splitTime($t1);
  $t2Arr=splitTime($t2);
 
  $Time1=mktime($t1Arr["h"], $t1Arr["m"], $t1Arr["s"], $t1Arr["M"], $t1Arr["D"], $t1Arr["Y"]);
  $Time2=mktime($t2Arr["h"], $t2Arr["m"], $t2Arr["s"], $t2Arr["M"], $t2Arr["D"], $t2Arr["Y"]);
 $TimeDiv=abs($Time2-$Time1);

  $Time["D"]=intval($TimeDiv/86400); // จำนวนวัน
  $Time["H"]=intval(($TimeDiv%86400)/3600); // จำนวน ชั่วโมง
  $Time["M"]=intval((($TimeDiv%86400)%3600)/60); // จำนวน นาที
  $Time["S"]=intval(((($TimeDiv%86400)%3600)%60)); // จำนวน วินาที
 return $Time;
}



function splitTime($time){ // เวลาในรูปแบบ มาตรฐาน 2006-03-27 21:39:12 
$timeArr["Y"]= substr($time,2,2);
$timeArr["M"]= substr($time,5,2);
$timeArr["D"]= substr($time,8,2);
$timeArr["h"]= substr($time,11,2);
$timeArr["m"]= substr($time,14,2);
 $timeArr["s"]= substr($time,17,2);
return $timeArr;
}


//------------------------------ ตัวอย่างการใช้งาน
$t1="2006-03-27 21:20:00"; /// เปลี่ยนเป็นข้อมูลจากฐานข้อมูล
$t2="2006-04-27 22:30:50"; /// เปลี่ยนเป็นข้อมูลจากฐานข้อมูล
print "<br> $t1 <br> $t2  <br>  ";
$time=dateDiv($t1,$t2);
print_r($time);
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 14:53:41 By : Dragons_first
 


 

No. 9



โพสกระทู้ ( 350 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ได้แล้วครับ แก้อยู่ตั้งนาน เลยเอาโค้ดมาให้ดู เพื่อมีใครจะแนะนำ หรือว่านำไปใช้บ้าง
ของผมเป็นกรณีที่ แสดงข้อมูลเป็นตารางแล้ว Query ข้อมูลขึ้นมาแสดงครับ

ส่วนนี้เอาไว้ข้างนอกเลย(นอกตาราง นอกคำสั่ง while)
Code (PHP)
<?php
function dateDiv($start,$end){
  $t1Arr=splitTime($start);
  $t2Arr=splitTime($end);
  $Time1=mktime($t1Arr["h"], $t1Arr["m"], $t1Arr["s"], $t1Arr["M"], $t1Arr["D"], $t1Arr["Y"]);
  $Time2=mktime($t2Arr["h"], $t2Arr["m"], $t2Arr["s"], $t2Arr["M"], $t2Arr["D"], $t2Arr["Y"]);
	$online=$Time2-$Time1;
	$day = intval( $online / 86400 ); // จำนวนวัน
	$hours = intval( ( $online % 86400 ) / 3600 ); // จำนวน ชั่วโมง
	$mins = intval( ( ( $online % 86400 ) % 3600 ) / 60 ); // จำนวน นาที
	$secs = intval( ( ( ( $online % 86400 ) % 3600) % 60 ) ); // จำนวน วินาที
	print "$day วัน $hours ชม. $mins นาที";
}
function splitTime($time){

$timeArr["Y"]= substr($time,2,2);//ในส่วนนี้ก็มานั่งนับเอานะครับ ถ้าค่าที่ส่งเข้า ไม่ได้เกิดจากการนำข้อมูลมาต่อกันก็ใช้ค่าจากตัวอย่างจากลิงค์ที่โพสไว้นะครับ
$timeArr["M"]= substr($time,5,2);
$timeArr["D"]= substr($time,8,2);
$timeArr["h"]= substr($time,10,2);
$timeArr["m"]= substr($time,13,2);
$timeArr["s"]= substr($time,16,2);
return $timeArr;
}
?>


ส่วนในตาราง ตำแหน่งที่ต้องการแสดงผลก็ใส่โค้ดนี้ไว้
Code (PHP)
<?php
$ID = $workResult["IDwork"];
$stSQL = "SELECT CONCAT(date,time_start) As start FROM workorder where IDwork = '$ID' ";
$stQuery = mysql_query($stSQL);
$stResult = mysql_fetch_array($stQuery); // ในส่วน query พอดีค่าของผมอยู่คนละฟิลด์ เลยต้องจับมันมารวมกันก่อนอ่ะครับ ถ้าอยู่ฟิลด์เดียวก็ query ธรรมดา ก็น่าจะได้นะครับ
$enSQL = "SELECT CONCAT(date_end,time_end) As end FROM workorder where IDwork = '$ID' ";
$enQuery = mysql_query($enSQL);
$enResult = mysql_fetch_array($enQuery);
$start = $stResult["start"];
$end = $enResult["end"];
$time=dateDiv($start,$end); //ส่งค่าไปให้ ฟังก์ชั่น dateDiv แล้วฟังก์ชั่นก็จะแสดงค่าที่คิดได้ออกมาครับ
?>


โค้ดต้นฉบับครับ
https://www.thaicreate.com/php/forum/058080.html

แล้วก็ขอขอบคุณ คุณอ้นคุง กับคุณ NOOM ที่เข้ามาแนะนำนะครับ


ประวัติการแก้ไข
2012-02-29 15:30:01
2012-02-29 15:31:13
2012-02-29 15:32:02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 15:29:09 By : akkaneetha
 


 

No. 10



โพสกระทู้ ( 314 )
บทความ ( 0 )



สถานะออฟไลน์


โอ้วววว... ขออภัยครับ มันต้องสมัครสมาชิกด้วยถึงดูได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-02-29 15:55:00 By : Songkram
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วยเรื่อง mktime ทีครับ มีตัวอย่างโค้ดด้านใน แบบว่าจะนำไปประยุกต์ใช้อ่ะครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่