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,028

HOME > PHP > PHP Forum > รบกวนผู้รู้ ขอสอบถามเรื่อง datetimediff ดึงจากฐานข้อมูลมาคำนวณ



 

รบกวนผู้รู้ ขอสอบถามเรื่อง datetimediff ดึงจากฐานข้อมูลมาคำนวณ

 



Topic : 119497



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



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




ตอนนี้มี

Code (PHP)
	<?php
date_default_timezone_set('Asia/Bangkok');
$d=date("Y-m-d H:i");

?>

<?php     

	function DateTimeDiff($strDateTime1,$strDateTime2){//datetime formate Y-m-d H:i
		$date = 0;
		$hour = 0;
		$min = 0;
		$diff = strtotime($strDateTime2) - strtotime($strDateTime1);
		$date = floor($diff/(60*60*24));
		$hour = floor(($diff-($date*60*60*24))/(60*60));
		$min = floor(($diff-($date*60*60*24)-($hour*60*60))/60);
		echo "ค่าต่างของวันที่ <u>".$strDateTime1."</u> กับ <u>".$strDateTime2."</u> คือ <u>".$date."</u> วัน <u>".$hour."</u> ชั่วโมง <u>".$min."</u> นาที";
	}
	DateTimeDiff("2015-10-21 10:00","$d");
?>



สามารถทำแบบนี้ได้แล้ว
ผลลัพธ์
ค่าต่างของวันที่ 2015-10-21 10:00 กับ 2015-10-21 13:28 คือ 0 วัน 3 ชั่วโมง 28 นาที


แล้วถ้าจะดึงวันที่จากฐานข้อมูลมาคำนวณกับวันปัจจุบันต้องดัดแปลงอย่างไรคะ
โดยให้ date_return เป็นวันที่คืน
ต้องการ
datetimediff('date_return","$d"); อ่ะค่ะ



Tag : PHP









ประวัติการแก้ไข
2015-10-21 13:34:07
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-10-21 13:33:34 By : programmua View : 702 Reply : 4
 

 

No. 1



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



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

1. select เวลาจาก ฐานข้อมูลมาเก็บลงตัวแปร ก่อน แบบ Array

2. เอา ตัวแปรที่เก็บข้อมูลนั้นมา วน

ยกตัวอย่าง

Code (PHP)
$data = $this->query('SELECT date from table');

foreach((array)$data as $item){
echo DateTimeDiff($item,date('Y-m-d H:i'));
}









ประวัติการแก้ไข
2015-10-21 15:32:24
2015-10-21 15:32:50
2015-10-21 15:33:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-21 15:31:58 By : progamer2000
 


 

No. 2



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



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


ตอนนี้สามารถดึงจากฐานข้อมูลได้แล้วค่ะ


Code (SQL)
	<?php
date_default_timezone_set('Asia/Bangkok');
$d=date("Y-m-d H:i");

?>
<?php
function duration($begin,$end){
	$remain=intval(strtotime($end)-strtotime($begin));
	$wan=floor($remain/86400);
	$l_wan=$remain%86400;
	$hour=floor($l_wan/3600);
	$l_hour=$l_wan%3600;
	$minute=floor($l_hour/60);
	$second=$l_hour%60;
	return $wan." วัน ".$hour." ชั่วโมง ".$minute." นาที ";
}
$objConnect = mysql_connect("localhost","root","usbw") or die("Error Connect to Database");
	mysql_query("SET NAMES UTF8",$objConnect); // set กำหนดมาตราฐาน
	mysql_query("SET character_set_results=utf8");//ตั้งค่าการดึงข้อมูลออกมาให้เป็น utf8
	mysql_query("SET character_set_client=utf8");//ตั้งค่าการส่งข้อมุลลงฐานข้อมูลออกมาให้เป็น utf8
	mysql_query("SET character_set_connection=utf8");//ตั้งค่าการติดต่อฐานข้อมูลให้เป็น utf8

	$objDB = mysql_select_db("database_thaifood");
$sql=mysql_query("select * from db_borrow_return where status_borrow='อนุมัติ' ");
while($row=mysql_fetch_array($sql)){
     
     echo"ระยะเวลา ".duration("$d",$row["date_return"])."<br>";
}
?>




แต่นำไปวางไม่ถูกค่ะ รบกวนช่วยดูให้ทีค่ะ
Code (PHP)
<?php
include("template_admin.php")
?>
</br>
</br>
</br>
</br>
</br>


<?php
class Paginator{
	var $items_per_page;
	var $items_total;
	var $current_page;
	var $num_pages;
	var $mid_range;
	var $low;
	var $high;
	var $limit;
	var $return;
	var $default_ipp;
	var $querystring;
	var $url_next;

	function Paginator()
	{
		$this->current_page = 1;
		$this->mid_range = 7;
		$this->items_per_page = $this->default_ipp;
		$this->url_next = $this->url_next;
	}
	function paginate()
	{

		if(!is_numeric($this->items_per_page) OR $this->items_per_page <= 0) $this->items_per_page = $this->default_ipp;
		$this->num_pages = ceil($this->items_total/$this->items_per_page);

		if($this->current_page < 1 Or !is_numeric($this->current_page)) $this->current_page = 1;
		if($this->current_page > $this->num_pages) $this->current_page = $this->num_pages;
		$prev_page = $this->current_page-1;
		$next_page = $this->current_page+1;


		if($this->num_pages > 1)
		{
			$this->return = ($this->current_page != 1 And $this->items_total >= 1) ? "<a class=\"paginate\" href=\"".$this->url_next.$this->$prev_page."\">&laquo; Previous</a> ":"<span class=\"inactive\" href=\"#\">&laquo; Previous</span> ";

			$this->start_range = $this->current_page - floor($this->mid_range/2);
			$this->end_range = $this->current_page + floor($this->mid_range/2);

			if($this->start_range <= 0)
			{
				$this->end_range += abs($this->start_range)+1;
				$this->start_range = 1;
			}
			if($this->end_range > $this->num_pages)
			{
				$this->start_range -= $this->end_range-$this->num_pages;
				$this->end_range = $this->num_pages;
			}
			$this->range = range($this->start_range,$this->end_range);

			for($i=1;$i<=$this->num_pages;$i++)
			{
				if($this->range[0] > 2 And $i == $this->range[0]) $this->return .= " ";
				if($i==1 Or $i==$this->num_pages Or in_array($i,$this->range))
				{
					$this->return .= ($i == $this->current_page And $_GET['Page'] != 'All') ? "<a title=\"Go to page $i of $this->num_pages\" class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" title=\"Go to page $i of $this->num_pages\" href=\"".$this->url_next.$i."\">$i</a> ";
				}
				if($this->range[$this->mid_range-1] < $this->num_pages-1 And $i == $this->range[$this->mid_range-1]) $this->return .= " ";
			}
			$this->return .= (($this->current_page != $this->num_pages And $this->items_total >= 1) And ($_GET['Page'] != 'All')) ? "<a class=\"paginate\" href=\"".$this->url_next.$next_page."\">Next &raquo;</a>\n":"<span class=\"inactive\" href=\"#\">&raquo; Next</span>\n";
		}
		else
		{
			for($i=1;$i<=$this->num_pages;$i++)
			{
				$this->return .= ($i == $this->current_page) ? "<a class=\"current\" href=\"#\">$i</a> ":"<a class=\"paginate\" href=\"".$this->url_next.$i."\">$i</a> ";
			}
		}
		$this->low = ($this->current_page-1) * $this->items_per_page;
		$this->high = ($_GET['ipp'] == 'All') ? $this->items_total:($this->current_page * $this->items_per_page)-1;
		$this->limit = ($_GET['ipp'] == 'All') ? "":" LIMIT $this->low,$this->items_per_page";
	}

	function display_pages()
	{
		return $this->return;
	}
}
?>
<head>
 <!-- Bootstrap CSS and bootstrap datepicker CSS used for styling the demo pages-->
        <link rel="stylesheet" href="css/datepicker.css">
		 <script src="js/bootstrap-datepicker-thai.js"></script>
		
</head>

<style type="text/css"> 
<!--
	.paginate {
	font-family: Arial, Helvetica, sans-serif;
	font-size: .7em;
	}
	a.paginate {
	border: 1px solid #000080;
	padding: 2px 6px 2px 6px;
	text-decoration: none;
	color: #000080;
	}
	h2 {
		font-size: 12pt;
		color: #003366;
		}
		
		 h2 {
		line-height: 1.2em;
		letter-spacing:-1px;
		margin: 0;
		padding: 0;
		text-align: left;
		}
	a.paginate:hover {
	background-color: #000080;
	color: #FFF;
	text-decoration: underline;
	}
	a.current {
	border: 1px solid #000080;
	font: bold .7em Arial,Helvetica,sans-serif;
	padding: 2px 6px 2px 6px;
	cursor: default;
	background:#000080;
	color: #FFF;
	text-decoration: none;
	}
	span.inactive {
	border: 1px solid #999;
	font-family: Arial, Helvetica, sans-serif;
	font-size: .7em;
	padding: 2px 6px 2px 6px;
	color: #999;
	cursor: default;
	}
-->
</style>
</br>
</br>
</br>

<div class="container-fluid">
<!--
<div class="panel panel-primary" style="background-color:#0e82d6;">
 <div><center> <class="panel-body"  style="color:white"><h3><span class="glyphicon glyphicon-refresh"></span> รายชื่อพนักงานที่ต้องคืนอุปกรณ์คอมพิวเตอร์</h3></center></div>
</div>
  
</div> -->

</br>
<!--ค้นหาคนที่จะแก้ไขโดย วันที่ยืม-->


<form name="frmSearch"  method="get" action="<?php  $_SERVER['SCRIPT_NAME'];?>">
  
    <div align="center">	
	<div class="panel " style="max-width:400px">
      <h4>ค้นหาข้อมูลด้วย วันที่คืนอุปกรณ์คอมพิวเตอร์</h4>
	 <div class="form-group">
  <div class="input-group ">
  <span class="input-group-addon" id="basic-addon1"> <span class="glyphicon glyphicon-calendar"></span></span>
  <input type="text" class="form-control"  name="txtKeyword" id="txtKeyword" >
  </div>
  </div>
  
 <script>
$(function () {
  $("#txtKeyword").datepicker({ format : 'yyyy-mm-dd' })
});

 </script>
 
	  
	  <button class="btn btn-primary"  type="submit" name="submit" id="submit" value="submit"  >
	  <span class="glyphicon glyphicon-search"></span><!-- ใส่ icon หน้าข้อความ login -->
			<!--  <h3><i class="glyphicon glyphicon-home"></i></h3>  -->
			 ค้นหา
			</button>
			
			<button class="btn btn-success"  type="cancel"  value="cancel"  onclick="window.location.href='return_list.php?val='"> <!--สีปุ่ม login-->
			
			  <span class="glyphicon glyphicon-menu-left"></span><!-- ใส่ icon หน้าข้อความ login -->
			<!--  <h3><i class="glyphicon glyphicon-home"></i></h3>  -->
			 กลับ
			</button>
   </div>
   </div>
   
</form>
</br>
<?php
     //ปิดไว้เพราะ ยังไม่ได้กรอก txtKeyword แล้วมันขึ้น notice underfined index
    error_reporting( error_reporting() & ~E_NOTICE );
    $name = $_REQUEST['txtKeyword'];
    echo $txtKeyword;
     
?>



	</div>
	
<!--สิ้นสุดการค้นหา-->	

</br>

 <div class="container-fluid">
 
 
 
		
 
</br>


          <div class="panel panel-primary">
  <div class="panel-heading">
  <center><h3><span class="glyphicon glyphicon-time"></span> รายชื่อพนักงานที่ต้องคืนอุปกรณ์คอมพิวเตอร์</h3></center>
  </div>

		
           <table class="table table-bordered" style="background-color:white">
    <thead>
 <tr>
		<th><center>ลำดับที่</center></th>
        <th><center>รหัสการยืมอุปกรณ์คอมพิวเตอร์</center></th>
		<th><center>ชื่อพนักงาน</center></th>
		<th><center>นามสกุลพนักงาน</center></th>
		<th><center>อีเมลล์</center></th>
		<th><center>ประเภทอุปกรณ์</center></th>
        <th><center>ชื่อเครื่องที่ให้ยืม</center></th>
		<th><center>วันที่ยืม</center></th>
        <th><center>วันที่คืน</center></th>
        <th><center>จำนวนที่ยืม</center></th>
		<th><center>เหลือเวลาอีก</center></th>
			     <th><center></center></th>
		  
		
 </tr>
    </thead>
	

    <tbody>


	<?php


	$objConnect = mysql_connect("localhost","root","usbw") or die("Error Connect to Database");
	mysql_query("SET NAMES UTF8",$objConnect); // set กำหนดมาตราฐาน
	mysql_query("SET character_set_results=utf8");//ตั้งค่าการดึงข้อมูลออกมาให้เป็น utf8
	mysql_query("SET character_set_client=utf8");//ตั้งค่าการส่งข้อมุลลงฐานข้อมูลออกมาให้เป็น utf8
	mysql_query("SET character_set_connection=utf8");//ตั้งค่าการติดต่อฐานข้อมูลให้เป็น utf8

	$objDB = mysql_select_db("database_thaifood");
	
	if($_GET['txtKeyword'] != "")
	{
			$objConnect = mysql_connect("localhost","root","usbw") or die("Error Connect to Database");
	mysql_query("SET NAMES UTF8",$objConnect); // set กำหนดมาตราฐาน
	$objDB = mysql_select_db("database_thaifood");
	// Search By Name or Email
	$strSQL = "select a.borrow_id , a.user_id , b.user_name , b.user_lastname ,a.time_borrow,a.time_return,a.type_id ,b.user_mail,c.type_name, a.date_borrow ,a.cal_time,a.time_return,a.cal_date , a.date_return , a.total_borrow , a.status_borrow,a.device_borrow from db_borrow_return a  
left join db_user b
on a.user_id=b.user_id
 left join db_type_device c
on a.type_id=c.type_id
WHERE (a.date_return LIKE '%".$_GET["txtKeyword"]."%' ) AND  status_borrow='อนุมัติ'   ";
} else {
$strSQL = "select a.borrow_id , a.user_id , b.user_name , b.user_lastname ,a.time_borrow,a.time_return, a.type_id ,b.user_mail, c.type_name , a.time_return,a.date_borrow ,a.cal_date,a.cal_time , a.date_return , a.total_borrow ,  a.status_borrow,a.device_borrow,datediff(a.date_borrow,a.date_return)AS cal_date from db_borrow_return a
left join db_user b
on a.user_id=b.user_id
left join db_type_device c
on a.type_id=c.type_id

WHERE status_borrow='อนุมัติ'     "; //เรียงวันที่จากน้อยไปมาก


}
	$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
	$Num_Rows = mysql_num_rows($objQuery);
	
	$Per_Page = 10;   // Per Page

$Page = $_GET["Page"];
if(!$_GET["Page"])
{
	$Page=1;
}

$Prev_Page = $Page-1;
$Next_Page = $Page+1;

$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
	$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
	$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
	$Num_Pages =($Num_Rows/$Per_Page)+1;
	$Num_Pages = (int)$Num_Pages;
}
$strSQL .="ORDER BY  cal_date ASC LIMIT $Page_Start , $Per_Page";
$objQuery  = mysql_query($strSQL);
	if(mysql_num_rows($objQuery)<1) {   ?>

<tr><td colspan="14"> <center><h3>ไม่พบข้อมูล </h3></center></tr></td>	
	<?php
		
	} else {
	   $i = 1;
	   if($Page > 1)
{
	$i = ($Per_Page * ($Page-1)) + 1; 
}

	while($objResult = mysql_fetch_array($objQuery))
	{
?>	






		
    <tr> 
	
		 <td><center><?php echo $i;?></center></td>
	 <td><center><?php echo $objResult["borrow_id"];?></center></td>
	<td><center><?php echo $objResult["user_name"];?></center></td>
	<td><center><?php echo $objResult["user_lastname"];?></center></td>
	<td><center><?php echo $objResult["user_mail"];?></center></td>
	<td><center><?php echo $objResult["type_name"];?> </center></td>
	<td><center><?php echo $objResult["device_borrow"];?></center></td>
    <td><center><?php echo date_thai($objResult["date_borrow"]);?></center></td>
    <td><center><?php echo date_thai($objResult["date_return"]);?></center></td>
	<td><center><?php echo $objResult["total_borrow"];?></center></td>
	

	


	<td>
	<center>
<button class="btn btn-primary">
<span class="glyphicon glyphicon-wrench"></span>
<a  style="color:white" href="edit_return_form.php?borrow_id=<?php echo $objResult["borrow_id"];?>">ดำเนินการ</a>
	
	</button>
	
	</center>
	</td>
	
	<td>
	<center>
<button class="btn btn-danger">
<span class="glyphicon glyphicon-envelope"></span>
<a  style="color:white" href="check_return.php?borrow_id=<?php echo $objResult["borrow_id"];?>">แจ้งส่งคืน</a>
	
	</button>
	
	</center>
	</td>
	

	
	</tr>
	
  
  <?PHP $i++; } } ?>
    </tbody>
	
</div>



</table>
</div>




Total <?php echo $Num_Rows;?> Record : <?php echo $Num_Pages;?> Page

<center>
<ul class="pagination pagination-sm">
<li>
  
<?php

$pages = new Paginator;
$pages->items_total = $Num_Rows;
$pages->mid_range = 10;
$pages->current_page = $Page;
$pages->default_ipp = $Per_Page;
$pages->url_next = $_SERVER["SCRIPT_NAME"]."?txtKeyword=$_GET[txtKeyword]&Page=";

$pages->paginate();

echo $pages->display_pages()
?>	
</li>
</ul>	
</center>
<?php
mysql_close($objConnect);
?>
</div>

		
		
<!--ปุ่ม cancel-->
<div align="center">	   

<button class="btn btn-success"  type="cancel"  value="cancel"  onclick="window.location.href='home_admin.php?val='"> 
			
			
			  <span class="glyphicon glyphicon-menu-left"></span>
			<!--  <h3><i class="glyphicon glyphicon-home"></i></h3>  -->
			  กลับหน้าแรก
			</button>
			</div>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-21 15:42:12 By : programmua
 

 

No. 3



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



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

จะเอาไปแสดงตรงไหนของ เวบละคับ ระบุหรืออธิบายให้นิดนึง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-21 15:56:03 By : progamer2000
 


 

No. 4



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



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


ทำได้แล้วค่าาา

นำไปแสดงในตารางค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-21 16:04:08 By : programmua
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนผู้รู้ ขอสอบถามเรื่อง datetimediff ดึงจากฐานข้อมูลมาคำนวณ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่