|
|
|
คำนวนเวลาด้วย php compare หาค่างต่างของวันที่ กี่วัน , กี่ ชม. , กี่ นาที ช่วยแนะนำด้วยครับ ๆๆๆๆๆๆๆๆๆๆๆๆ |
|
|
|
|
|
|
|
แนวทางครับ
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>";
?>
Go to : PHP DateDiff / TimeDiff
|
|
|
|
|
Date :
2011-03-31 08:51:09 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โอ ! พระเจ้ามันยอดมากครับได้คำตอบเร็วมาก ขอบคุณมากๆๆๆๆๆๆๆๆๆๆ เลยครับ
|
|
|
|
|
Date :
2011-03-31 09:57:54 |
By :
poojo666 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 :
2011-03-31 16:01:08 |
By :
poojo666 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เยี่ยมครับ
|
|
|
|
|
Date :
2011-03-31 16:05:02 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เยี่ยมที่สุดค่ะ
|
|
|
|
|
Date :
2011-04-06 14:29:47 |
By :
penpimonmink |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$birthday = "1982-06-10"; //รูปแบบการเก็บค่าข้อมูลวันเกิด
$today = date("Y-m-d"); //จุดต้องเปลี่ยน
list($byear, $bmonth, $bday)= explode("-",$birthday); //จุดต้องเปลี่ยน
list($tyear, $tmonth, $tday)= explode("-",$today); //จุดต้องเปลี่ยน
$mbirthday = mktime(0, 0, 0, $bmonth, $bday, $byear);
$mnow = mktime(0, 0, 0, $tmonth, $tday, $tyear );
$mage = ($mnow - $mbirthday);
echo "วันเกิด $birthday"."<br>\n";
echo "วันที่ปัจจุบัน $today"."<br>\n";
echo "รับค่า $mage"."<br>\n";
$u_y=date("Y", $mage)-1970;
$u_m=date("m",$mage)-1;
$u_d=date("d",$mage)-1;
echo"<br><br>$u_y ปี $u_m เดือน $u_d วัน<br><br>";
อันนี้ก็ดีครับ
|
|
|
|
|
Date :
2011-06-13 11:01:38 |
By :
9811 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Good Jobs
|
|
|
|
|
Date :
2011-09-15 15:23:21 |
By :
MINJO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้ารีบค่าวันที่จาก textbox ละคะ ลบกัยวันที่ปัจจุบัน
|
|
|
|
|
Date :
2012-01-11 01:46:41 |
By :
alala |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากนะครับ แต่มีแบบที่สามารถคำนวนวันที่เป็น 26 สิงหาคม 2555 ถึง 5 สิงหาคม 2555 ได้บ้างครับ
ผมลองทุกแบบในนี้นี้แล้วคำตอบคือเดือนสิงหามี 30 วันอะครับ
|
|
|
|
|
Date :
2012-08-26 02:09:58 |
By :
mintlufy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แหะๆ ผมลืมบอกไปว่า format ที่ผมใช้ก็ 2012-08-30 ปกติอะครับ
|
|
|
|
|
Date :
2012-08-30 06:05:49 |
By :
mintlufy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29/03/2011 11:00:00 - 31/03/2011 13:10:00 = 2 วัน 3 ชั่วโมง 10 นาที่
แล้วถ้าต้องการให้แสดง "หลายปีที่ผ่านมา" ด้วยหล่ะครับ
อย่างเช่น 29/03/2011 11:00:00 - 31/03/2013 13:10:00 = หลายปีที่ผ่านมา
ขอบคุณครับ
|
|
|
|
|
Date :
2013-10-13 14:35:39 |
By :
Tum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 ปีขึ้นไปครับ รบกวนช่วยทีครับ
ขอบคุณครับ
|
|
|
|
|
Date :
2013-10-13 16:50:37 |
By :
Tum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยทีครับ...
|
|
|
|
|
Date :
2013-10-13 20:36:38 |
By :
Tum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากกระทู้เก่า ๆ ที่คุณถามต่อมานี้ ทำได้ขึ้นไหนแล้วครับ หรือ ยังไม่ได้เลย หรือ ยังไม่ได้ทำเลย
เอาง่าย ๆ คุณลบระยะห่างของวันเวลาได้ยังครับ ถ้าได้แล้วก็ผ่าน
แต่ Case 2 ปีนี้ คุณจับ ค.ศ. แยกมาลบกัน
ใช้ if ช่วยประมาณนี้
|
|
|
|
|
Date :
2013-10-13 21:31:45 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองทำแล้วครับ ได้แล้วแต่อยากให้เพิ่ม เมื่อเวลาห่างกันเกิน 2 ปี ให้แสดงเป็นผ่านมาหลายปี
นี่โค๊ดที่ผมลองทำๆดูอ่ะ ได้แค่นี้ ผู้ใจบุญช่วยทีคับ
Code (PHP)
<?php
function fb_date($timestamp){
$difference = time() - $timestamp;
$difference2 = time() - $timestamp;
$difference3 = time() - $timestamp;
$periods = array("วินาที", "นาที", "ชม.");
$ending=" ที่ผ่านมา...";
if($difference<60){
$j=0;
$periods[$j].=($difference != 1)?"":"";
$difference=($difference==3 || $difference==4)?"3 - 4 ":$difference;
$text = "$difference $periods[$j] $ending";
}elseif($difference<3600){
$j=1;
$difference=round($difference/60);
$periods[$j].=($difference != 1)?"":"";
$difference=($difference==3 || $difference==4)?"3 - 4 ":$difference;
$text = "$difference $periods[$j] $ending";
}elseif($difference<86400) {
$j=2;
$difference=round($difference/3600);
$min=round($difference2%86400%3600/60);
$periods[$j].=($difference != 1)?"":"";
$difference=($difference != 1)?$difference:"1";
$text = "$difference $periods[$j] $min นาที $ending";
}elseif($difference<172800){
$difference=round($difference/86400);
$hour=round($difference3%86400/3600);
$min=round($difference2%86400%3600/60);
$periods[$j].=($difference != 1)?"..":"";
$text = "$difference วัน $hour ชม. $min น.";
}elseif($difference!=172800){
$difference=round($difference/86400);
$hour=round($difference3%86400/3600);
$min=round($difference2%86400%3600/60);
$periods[$j].=($difference != 1)?"..":"";
$text = "$difference วัน $hour ชม. $min น.";
}else{
if($timestamp<strtotime(date("Y-01-01 00:00:00"))){
$text = date("l j, Y",$timestamp)." at ".date("g:ia",$timestamp);
}else{
$text = date("l j",$timestamp)." at ".date("g:ia",$timestamp);
}
}
return $text;
}
?>
|
|
|
|
|
Date :
2013-10-14 08:15:42 |
By :
Tum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if($a>2){
echo "หลายปีมาแล้ว";
}
//$a หมายถึงผลลัพธ์ที่เกิดจากการลบ ถ้ามันมีค่ามากกว่า 2 ปี แต่ 2 ปี เท่ากันกี่นาทีกี่ ชม. หรือ คุณจะลบกันแบบไหน คุณต้องลองศึกษาดู
จะลบให้ได้จำนวนปีเลยต้องทำยังไง ซึ่งดูจาก code มันก็ไม่น่าจะยากแล้วครับ
ลองคิดเพิ่มอีกนิด ในเมื่อหาผลต่างของเวลาได้แล้ว ก็สร้างเคส if หรือ elseif ขึ้นมาอีกเงื่อนไขนึง ที่มันเกี่ยวข้องกับ > 2 ปี
ตามต้องการ
|
|
|
|
|
Date :
2013-10-14 09:22:28 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เดี๋ยวลองดูครับ
ขอบคุณนะครับ
|
|
|
|
|
Date :
2013-10-14 16:01:29 |
By :
Tum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมอยากทำประมาณว่า ให้เอาวันที่จาก textbox วันที่ออกใบงาน มาลบ- กับ textbox วันกำหนดส่งงาน
แล้วโชว์ผลลัพธ์ใน textbox สถานะ ครับ
ขอบคุณมากๆครับ
|
|
|
|
|
Date :
2016-02-01 11:08:54 |
By :
toom |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ครับ ใช้ javascript event onchange ในการจัดการ
ไกด์ไลน์ให้ก็แล้วนะครับ
ศึกษาเรื่อง Date object ของ javascript จะได้เป็นด้วยตัวเองไม่ได้ยาก
|
|
|
|
|
Date :
2017-11-21 09:37:12 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้สำหรับดูว่าเวลาปัจจุบัน ต่างกับเวลาที่กำหนดเท่าไหร่ เช่น 2|8|30|20 วัน ชั่วโมง นาที วินาที
Code (PHP)
date_default_timezone_set('Asia/Bangkok');
$nt = time(); // มันจะดึงเวลาปัจุบันมาเอง
$ct = strtotime("2013-01-04 12:12:30"); // ใส่เวลาที่คุณต้องการ อาจจะมาจากดาต้าเบสก็ได้ดึงค่ามาใส่
$distance = $ct-$nt; //หักลบวันเพื่อใช้คำนวณ
$days = floor($distance / (60 * 60 * 24));
$hours = floor(($distance % (60 * 60 * 24)) / (60 * 60));
$minutes = floor($distance % (60 * 60)/60);
$seconds = floor($distance % 60);
if ($distance >= 0) {
$keep = $days."|".$hours."|".$minutes."|".$seconds;
} else {
$keep = "";
}
echo $keep;
|
ประวัติการแก้ไข 2019-02-14 20:49:41 2019-02-14 20:52:39
|
|
|
|
Date :
2019-02-14 20:48:03 |
By :
bank1324 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สวัสดีครับ อยากสอบถาม แนวทางการเขียนโค้ด และ function หา จำนวนวันปฏิบัติงาน ครับ
โดย วันที่เดินทางและเวลาออกเดินทาง มาคำนวณกับ วันที่เดินทางกลับและเวลาออกเดินทางกลับ
ผลลัพธ์ จะแสดงที่ รวมจำนวนวันปฏิบัติงาน(วัน)
ขอบคุณครับ
|
|
|
|
|
Date :
2019-08-21 16:21:00 |
By :
thanakit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้อ่าน ข้างบนบ้างหรือเปล่าเนี่ย ถ้าอ่านก็น่าจะทำได้แล้ว
|
|
|
|
|
Date :
2019-08-22 06:32:44 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยด้วยครับ
เกี่ยวกับวันที่ครับ
ติดปัญหาตั้งแต่ค้นหา รหัสพนักงาน ให้ออกวันที่เริ่มงาน
พอค้นหาได้ ช่องของหัวข้ออบรมก็หายไปอีก
|
|
|
|
|
Date :
2019-09-16 12:00:39 |
By :
Authorityheart |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|