|
|
|
สอบถามเกี่ยวกับการใช้ jquery datepicker ครับ คือมี startdate กับ enddate จะให้มันคำนวณกัน |
|
|
|
|
|
|
|
สอบถามเกี่ยวกับการใช้ jquery datepicker ครับ คือมี start_date กับ end_date จะให้มันคำนวณกัน
โดยที่สมมุติ start_date เริ่มวันที่ 30 เมษายน end_date เริ่มวันที่ 2 พฤษภาคม โดย วันที่ 1 เป็นวันหยุด
ถ้าคำนวณออกมา ก็จะได้เท่ากับ 2 วัน ต้องเขียนยังไงดีครับ ตอนนี้ผมทำได้แต่ disable วันที่ 1 พฤษาภาคม ห้ามเลือก แต่ถ้าเลือกคร่อม
มันยังเป็น 3 วันอยู่ครับ
Code (PHP)
<script type="text/javascript">
/* create an array of days which need to be disabled */
var disabledDays = ["5-1-2012","5-16-2012","2-27-2010"];
/* utility functions */
function nationalDays(start_date) {
var m = start_date.getMonth(), d = start_date.getDate(), y = start_date.getFullYear();
//console.log('Checking (raw): ' + m + '-' + d + '-' + y);
for (i = 0; i < disabledDays.length; i++) {
if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1 || new Date() > start_date) {
//console.log('bad: ' + (m+1) + '-' + d + '-' + y + ' / ' + disabledDays[i]);
return [false];
}
}
//console.log('good: ' + (m+1) + '-' + d + '-' + y);
return [true];
}
function noWeekendsOrHolidays(start_date) {
var noWeekend = jQuery.datepicker.noWeekends(start_date);
return noWeekend[0] ? nationalDays(start_date) : noWeekend;
}
/* utility functions */
function nationalDays(end_date) {
var m = end_date.getMonth(), d = end_date.getDate(), y = end_date.getFullYear();
//console.log('Checking (raw): ' + m + '-' + d + '-' + y);
for (i = 0; i < disabledDays.length; i++) {
if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1 || new Date() > end_date) {
//console.log('bad: ' + (m+1) + '-' + d + '-' + y + ' / ' + disabledDays[i]);
return [false];
}
}
//console.log('good: ' + (m+1) + '-' + d + '-' + y);
return [true];
}
function noWeekendsOrHolidays(end_date) {
var noWeekend = jQuery.datepicker.noWeekends(end_date);
return noWeekend[0] ? nationalDays(end_date) : noWeekend;
}
/* create datepicker */
jQuery(document).ready(function() {
jQuery('#start_date').datepicker({
//minDate: new Date(2010, 0, 1),
//maxDate: new Date(2010, 5, 31),
//dateFormat: 'DD, MM, d, yy',
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
dateFormat: 'dd/mm/yy',
constrainInput: true,
beforeShowDay: noWeekendsOrHolidays
});
$("#end_date").datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
//minDate: +3,
constrainInput: true,
beforeShowDay: noWeekendsOrHolidays,
dateFormat: 'dd/mm/yy',
onSelect: function (dateText, inst) {
var date2 = dateText;
var date1 = $("#start_date").val();
date1 = date1.split("/");
date2 = date2.split("/");
sDate = new Date(date1[2], date1[1] - 1, date1[0]);
eDate = new Date(date2[2], date2[1] - 1, date2[0]);
alert(jQuery('#sDate').val());
alert(jQuery('#eDate').val());
var daysDiff = Math.round(((eDate - sDate) / 86400000)+1); //totalday + 1//
//var daysDiff = Math.round((eDate - sDate) / 86400000);
$("#sumDay").val(daysDiff.toString());
var result = parseInt($("#day_old").val()) + parseInt($("#sumDay").val());
$("#txtAns").val(result);
}
});
});
</script>
Tag : PHP, jQuery
|
|
|
|
|
|
Date :
2012-04-29 20:47:57 |
By :
phongphisut |
View :
1863 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แนะนำให้ส่งค่าไปให้ PHP ทำการบวกลบให้ ครับ
ทีมันเกิดปัญหาคือยังไม่ได้ลบวันหยุด (ซึ่ง jquery มันก็ไม่ทราบว่าเป็นวันหยุดหรอกครับ)
|
|
|
|
|
Date :
2012-04-29 21:14:41 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่ครับ มีปุ่มสักอันนึงเพื่อกดคำนวนวันที่ลา เมื่อกดปุ่มแล้วก็ใช้ jquery เพื่อส่งค่าไปให้ไฟล์ php คำนวน แล้วส่งกลับมาลง textbox ที่เป็นจำนวนวัน
|
|
|
|
|
Date :
2012-05-01 23:01:08 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
calc-holiday.php
Code (PHP)
<?php
$strStartDate = $_POST["strStartDate"];
$strEndDate = $_POST["strEndDate"];
$intWorkDay = 0;
$intHoliday = 0;
$intTotalDay = ((strtotime($strEndDate) - strtotime($strStartDate))/ ( 60 * 60 * 24 )) + 1;
while (strtotime($strStartDate) <= strtotime($strEndDate)) {
$DayOfWeek = date("w", strtotime($strStartDate));
if($DayOfWeek == 0 or $DayOfWeek ==6) // 0 = Sunday, 6 = Saturday;
{
$intHoliday++;
}
else
{
$intWorkDay++;
}
$strStartDate = date ("Y-m-d", strtotime("+1 day", strtotime($strStartDate)));
}
echo $intHoliday;
?>
ส่วนไฟล์นี้ตั้งชื่ออะไรก็ได้ครับ เป็นตัวหลัก ไปใส่ datepicker เอาเองน่ะครับ
Code (PHP)
<html>
<head>
<title>https://www.thaicreate.com/php/forum/077738.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
ตั้งแต่วันที่<input type="text" id="startDate" /><br />
ถึงแต่วันที่<input type="text" id="endDate" /><br />
<input type="button" id="vocation_calc" value="คำนวนวันลา" /><br />
<input type="text" id="total_day_leave" />
<script language="javascript">
$("#vocation_calc").click(function(){
$.post("calc-holiday.php", { strStartDate:$("#startDate").val() , strEndDate:$("#endDate").val() } ,
function(data){
$("#total_day_leave").css("border-color","blue").val(data);
});
});
</script>
</body>
</html>
|
|
|
|
|
Date :
2012-05-01 23:28:20 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$start_date=ตัวแบบ startdate;
$end_date=ตัวแบบ enddate;
$my = explode("-", $start_date);
$myyear = $my[0];
$mymonth = $my[1];
$myday = $my[2];
$my2 = explode("-", $end_date);
$myyear2 = $my2[0];
$mymonth2 = $my2[1];
$myday2 = $my2[2];
$start = gregoriantojd($mymonth,$myday,$myyear);
$end = gregoriantojd($mymonth2,$myday2,$myyear2);
$mycal = $end-$start;
แนวทาง
|
|
|
|
|
Date :
2012-05-02 15:42:46 |
By :
keng_ds |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|