|
|
|
การคำนวณใน text ต้องการคำนวณวันที่จาก text1 กับ text2 (text1กับtext2 เป็น date picker) |
|
|
|
|
|
|
|
ต้องการจะคำนวณอะไรของวันที่ คำนวณแบบไหนครับ งงง?
|
|
|
|
|
Date :
2009-11-26 16:49:02 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
text1 และ text2 เก็บฟิลด์เป็น datetime
เช่น
text1 = 01/11/1009 08:30 (dd/mm/yyyy HH:ss)
text2 = 02/11/1009 12:30 (dd/mm/yyyy HH:ss)
ผลลัพธ์ที่ได้ แสดงใน text3
ขอบคุณ
|
|
|
|
|
Date :
2009-11-26 17:04:24 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยัง งง อยู่ครับ
หมายถึงว่า คุณจะเอาวันที่ กับเวลา ของ text1+text2 หรอ???
หรือว่าต้องการ หาค่าต่างของวันที่และเวลา
|
|
|
|
|
Date :
2009-11-26 18:29:06 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หาค่าต่างของวันที่และเวลา แต่ไม่ได้คำนวณจากดาต้าเบส
|
|
|
|
|
Date :
2009-11-27 08:18:37 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูตาม Link ข้างบนเลยครับ
|
|
|
|
|
Date :
2009-11-27 08:26:08 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (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("2009-11-01 10:00","2009-11-02 09:00");
?>
ลองแบบนี้ว่าใช้ได้ปะ
|
|
|
|
|
Date :
2009-11-27 09:01:32 |
By :
naskw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค้ดบนได้แล้วเฉพาะที่คำนวณจาก ดาต้าเบส
แต่ตอนนี้ งง กับการเขียนระหว่างtextbox
โดย textbox ที่รับค่าจาก datepicker 2 อัน เมื่อเลือก datepicker อันที่สองแล้วให้แสดงจำนวนวันลาใน textbox อันที่สามโดยไม่ต้องกดปุ่มใดๆทั้งสิ้น รวมทั้งไม่นับรวมวันเสาร์และวันอาทิตย์ จะทำอย่างไรค่ะ
|
|
|
|
|
Date :
2009-11-27 10:41:34 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อันนี้เป็นระบบลางานออนไลน์หรอครับ กะลังทำเหมือนกัน ถ้าเป็นระบบของผมนะแนวคิดก็เหมือนกันอะเลือกวันที่เริ่มลา และวันที่สิ้นสุด และเลือกเวลาอีกต่างหาก หลังจากเลือกเวลาแล้วระบบจะคำนวนเวลาให้ครับ ส่วนเรื่องวันหยุด ระบบของผมจะมีการกำหนดวันหยุดลงในดาต้าเบสด้วยครับ ถ้าลาข้ามวันหยุดระบบจะลบออกเอง ทั้งหยุดที่เป็นเสาร์อาทิตย์ และหยุดอื่นๆ ส่วนหลักการคือเมื่อผมได้วันที่จะลาแล้วผมจะหา datediff และนำวันลาที่ได้ไปคิวรีดูในดาต้าเบสว่าระหว่างวันที่ลาถึงวันที่สิ้นสุดมีวันหยุดกี่วัน แล้วใช้ datediff ในการแยกวันหยุดออก ประมาณนี้ครับ
|
|
|
|
|
Date :
2009-11-27 12:48:12 |
By :
naskw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เลือกเวลาอีกต่างหาก หลังจากเลือกเวลาแล้วระบบจะคำนวนเวลาให้ครับ
เขียนภาษาอะไรในการคำนวณ วันที่และเวลา
ขอบคุณค่ะ
|
|
|
|
|
Date :
2009-11-27 15:53:22 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บอกไว้ก่อนน่ะครับ โค้ดถึกมากๆ 55+
นึก syntax ไม่ออกจริงๆ
ว่างๆจะมาคิดใหม่
Code (PHP)
<?php
function DateTimeDiff($strDateTime1,$strDateTime2){//datetime formate Y-m-d H:i
$date = 0;
$hour = 0;
$min = 0;
$day1=0;
$escape=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);
$day1 =date('N',strtotime($strDateTime1)); // php5.1.0 ขึ้นไป ถ้าไม่ใช่ไปอัพเดท :>
$escape =(int)($date/7)*2;
$mod=$date%7;
if($mod !=0){
if($day1 ==6 ) $escape++;
if($day1==7)$escape++;
if($day1 ==6 && $mod>1)$escape++;
//if($mod ==6) $escape++; แก้เอาออก มันซ้ำ
if($day1+$mod>5 && $day1<6)$escape++;
if($day1+$mod>6 && $day1<6)$escape++;
}
return $date-$escape;
}
$date1 ="2009-11-14 10:00";
$date2 ="2009-11-17 11:00";
echo "$date1 - $date2<br>";
$diff =DateTimeDiff($date1,$date2);
echo "จำนวนวัน $diff";
|
|
|
|
|
Date :
2009-11-27 16:03:27 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ
|
|
|
|
|
Date :
2009-11-27 16:12:41 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่รู้ว่าคำนวณถูกเปล่าน่ะ ลองๆดูละกัน ผมคิดว่าน่าจะมีคนทำเกี่ยวกับละวันอาทิตย์กับเสาร์ไว้แล้วแหล่ะ ถ้าเจอเดียวเอามาโพสใหม่
|
|
|
|
|
Date :
2009-11-27 16:18:20 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค้ดบนได้แล้วเฉพาะที่คำนวณจาก ดาต้าเบส
แสดงว่าคุณ Bigjiw อยากให้ระบบคำนวนเวลาจาก textbox ให้โดยที่ไม่ต้อง refresh หน้าเพจหรอครับ ถ้าแบบนี้ต้องใช้ ajax แล้วละครับ โดยใช้ ajax เรียกไปยัง โค้ด php ที่ผมทำไว้พร้อมทั้งส่งค่าวันที่ และเวลา จาก textbox ทั้งสองไปด้วยนะครับ แล้วให้ php return ค่ากลับมาให้ครับ หวังว่าคงเข้าใจ
|
|
|
|
|
Date :
2009-11-27 20:30:58 |
By :
naskw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เลือกเวลาอีกต่างหาก หลังจากเลือกเวลาแล้วระบบจะคำนวนเวลาให้ครับ
เขียนภาษาอะไรในการคำนวณ วันที่และเวลา
ขอบคุณค่ะ
php = ใช้ในการคำนวนความต่างระหว่างวัน หักลบวันหยุดบริษัทที่กำหนดไว้ในดาต้าเบสแล้ว
javascript = ใช้ทำ datepicker และตรวจสอบว่า user ได้เลือกวันที่ ครบทั้งสองค่าแล้วหรือยัง ถ้าครบก็ส่งค่าจาก textbox ทั้งสองไปยัง php และใช้กำหนด event ให้กับ textbox ด้วยนะ ผมใช้ onblur และ focus
และ ajax ด้วย
|
|
|
|
|
Date :
2009-11-27 20:50:30 |
By :
naskw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณ naskw มากค่ะ
|
|
|
|
|
Date :
2009-11-30 10:11:45 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ใช้ java script ในการคำนวณหาผลต่างของวันที่ได้แล้วค่ะ
ตอนนี้กำลัง แปลง code php ให้เป็น java script อยู่ (เพื่อคำนวณผลต่างวันที่โดยไม่ให้นับวันเสาร์-อาทิตย์)
function DateTimeDiff($strDateTime1,$strDateTime2){//datetime formate Y-m-d H:i
$date = 0;
$hour = 0;
$min = 0;
$day1=0;
$escape=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);
$day1 =date('N',strtotime($strDateTime1)); // php5.1.0 ขึ้นไป ถ้าไม่ใช่ไปอัพเดท :>
$escape =(int)($date/7)*2;
$mod=$date%7;
if($mod !=0){
if($day1 ==6 ) $escape++;
if($day1==7)$escape++;
if($day1 ==6 && $mod>1)$escape++;
//if($mod ==6) $escape++; แก้เอาออก มันซ้ำ
if($day1+$mod>5 && $day1<6)$escape++;
if($day1+$mod>6 && $day1<6)$escape++;
}
return $date-$escape;
}
$date1 ="2009-11-14 10:00";
$date2 ="2009-11-17 11:00";
echo "$date1 - $date2<br>";
$diff =DateTimeDiff($date1,$date2);
echo "จำนวนวัน $diff";
ใครเขียน java script เป็นบ้าง ช่วยแนะนำด้วยค่ะ
ขอบคุณค่ะ
|
|
|
|
|
Date :
2009-11-30 15:13:26 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<script>
function DateTimeDiff(date1,date2){
var d =new Date();
var date1_toarray =new Array();
var date2_toarray=new Array();
date1_toarray =date1.split(/[- :]/g);
date2_toarray=date2.split(/[- :]/g);
d.setYear(date2_toarray[0]-date1_toarray[0]);
d.setMonth(date2_toarray[1]-date1_toarray[1]);
d.setDate(date2_toarray[2]-date1_toarray[2]);
d.setHours(date2_toarray[3]-date1_toarray[3]);
d.setMinutes(date2_toarray[4]-date1_toarray[4]);
var diff_date =d.getDate();
var diff_hours =d.getHours();
var diff_minutes =d.getMinutes();
d.setYear(date1_toarray[0]);
d.setMonth(date1_toarray[1]-1); // month 0-11 format month of php to month of javascript = month of php minus 1
d.setDate(date1_toarray[2]);
var day1 =d.getDay();
// 0 - sunday เนื่องจากจาวาสคริปนับวัน 0-6 php 1-7 ต้องแปลงวันอาทิตย์ให้เป็นเลข 7 จะได้ตรงกับโค้ด php
day1 =(day1 ==0)?7:day1;
var escape =parseInt((diff_date/7)*2);
var mod=diff_date%7;
if(mod !=0){
if(day1 ==6 ) escape++;
if(day1==7)escape++;
if(day1 ==6 && mod>1)escape++;
if(day1+mod>5 && day1<6)escape++;
if(day1+mod>6 && day1<6)escape++;
}
return diff_date-escape;
}
var date1 ="2009-11-14 10:00";
var date2 ="2009-11-22 11:00";
var diff=DateTimeDiff(date1,date2);
alert("หยุดทั้งหมด : "+diff);
</script>
|
|
|
|
|
Date :
2009-11-30 16:28:21 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ
|
|
|
|
|
Date :
2009-12-01 09:13:04 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าคุณ Bigjiw ว่างก็มาเล่าเรื่องโปรเจ็คให้ฟังบ้างนะครับ พอดีมันใกล้เคียงกับอันที่ผมทำอยู่อะ เผื่อได้ไอเดียใหม่ๆไปปรับปรุงระบบมั้ง
|
|
|
|
|
Date :
2009-12-01 16:55:34 |
By :
naskw |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอเมลล์หน่อยค่ะ เพื่อปรึกษาระบบวันลาด้วย
เมลล์bigjiw: [email protected]
|
|
|
|
|
Date :
2009-12-02 09:57:21 |
By :
bigjiw82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากตัวอย่างรูปด้านบน เมื่อระบุ ชั่วโมงเริ่มลา และ ชั่วโมงสิ้นสุดการลา ให้ผลลัพธ์ออกเป็น
ผลรวม จำนวนชั่วโมง อัตโนมัติ รบกวนขอตัวอย่างโค้ดอ่ะครับ
|
|
|
|
|
Date :
2010-09-16 23:32:00 |
By :
Sompob |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|