PHP ถามเรื่อง DateTime หน่อยครับ จะ Check WorkDay หาวันเสาร์-อาทิตย์ จากวันที่ต่อไปนี้
ลองดูครับ
for i = 0 to datediff("d",date1,date2)
response.write "<br>"&sDate
if weekday(date1) = 1 or weekday(date1) = 7 then
week = week + 1
end if
date1 = dateadd("d",1,date1)
next
Date :
2011-04-27 09:04:38
By :
thep
อันนี้มันเป็นภาษาอะไรบหรอครับ
เหมือนจะไม่ใช่ php ดูแปลกๆ อ่ะครับ
ลองแล้วไม่ได้ครับ
Date :
2011-04-27 09:48:13
By :
l3eel2
Code (PHP)
<?php
$start = strtotime("2011-04-04 08:00:00"); // your start/end dates here
$end = strtotime("2011-04-29 08:50:00");
$saturday = strtotime("saturday", $start);
while($saturday < $end) {
echo "วันเสาร์ = ", date("d m Y", $saturday), "\n";
echo '<br>';
$sunday = strtotime("+1 days", $saturday);
if($sunday < $end ){ //+ เช็คเผื่อวันอาทิตย์อยู่วันที่ 1 ของเดือนใหม่
echo "วันอาทิตย์ = ", date("d m Y", $sunday), "\n";
echo '<br>';
}
$saturday = strtotime("+1 weeks", $saturday);
}
?>
ไม่รู้ใช่ประมาณนี้ไหม ผมดัดแปลงมาจากเว็บ
http://stackoverflow.com/questions/1547492/get-every-friday-saturday-and-sunday-in-a-given-time-frame
รอความเห็น พี่ ๆ ท่านอื่นที่ เขียนสั้นกว่านี้อีกทีก็ได้ครับ
Date :
2011-04-27 10:47:14
By :
ไวยวิทย์
เคยมีคนถามไว้ในบอร์ด เขียนฟังก์ชั่นไว้แล้ว จะ skip อะไรก็เลือกได้เลย
Code (PHP)
function date_in_period($format, $start, $end, $skip = NULL){
$output = array();
$days = floor((strtotime($end) - strtotime($start))/86400);
for($i=0;$i<=$days;$i++){
$in_period = strtotime("+" . $i . " day", strtotime($start));
if(is_array($skip) and in_array(date("D",$in_period), $skip)){
continue;
}
array_push($output, date($format, $in_period));
}
return $output;
}
echo "No skipping : <br / >";
$date = date_in_period("D-d-m-Y", "2011-04-04", "2011-04-19");
foreach($date as $day){
echo $day . "<br / >";
}
echo "Total : " . count($date) . " days<br / >";
echo "<br / ><br / >Has skipping : <br / >";
$date = date_in_period("D-d-m-Y", "2011-04-04", "2011-04-19", array("Mon", "Tue", "Wed", "Thu", "Fri"));
foreach($date as $day){
echo $day . "<br / >";
}
echo "Total : " . count($date) . " days";
Date :
2011-04-27 12:26:30
By :
PlaKriM
ขอบคุณทุกท่านมากครับบ
Date :
2011-05-03 10:05:06
By :
l3eel2
Code (PHP)
<?php
$strStartDate = "2011-08-01";
$strEndDate = "2011-08-15";
$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++;
echo "$strStartDate = <font color=red>Holiday</font><br>";
}
else
{
$intWorkDay++;
echo "$strStartDate = <b>Work Day</b><br>";
}
//$DayOfWeek = date("l", strtotime($strStartDate)); // return Sunday, Monday,Tuesday....
$strStartDate = date ("Y-m-d", strtotime("+1 day", strtotime($strStartDate)));
}
echo "<hr>";
echo "<br>Total Day = $intTotalDay";
echo "<br>Work Day = $intWorkDay";
echo "<br>Holiday = $intHoliday";
?>
Screenshot
Go to : PHP Checking Work Day , Holday ตรวจสอบวันหยุด
Date :
2011-08-25 09:23:27
By :
webmaster
Load balance : Server 02