|
PHP Checking Work Day , Holiday ตรวจสอบวันหยุด และวันหยุดราชการ |
PHP Checking Work Day , Holiday ตรวจสอบวันหยุด บทความ PHP ในการตรวจสอบวันหยุด เสาร์ , อาทิตย์ (Sunday , Saturday) และวันหยุดราชการ (Public Holiday) และการใช้ MySQL ตรวจสอบวันหยุดประจำปี
ตัวอย่างที่ 1 ตรวจสอบ วันหยุด เสาร์ - อาทิตย์ (Work Day , Holiday)
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<?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";
?>
</body>
</html>
Screenshot
ตัวอย่างที่ 2 ตรวจสอบ วันหยุด เสาร์ - อาทิตย์ และวันหยุดรายการ (Work Day , Holiday, Public Holiday) ซึ่งในกรณีที่วันตรวจสอบวันหยุดราชการนั้น จะต้องมีฐานข้อมูลที่เก็บวันหยุดรายการ โดยในนี้ที่จะใช้ MySQL Database ในการจัดเก็บ
CREATE TABLE `public_holiday` (
`FisYear` int(4) NOT NULL,
`PublicHoliday` date NOT NULL,
`Descripiton` varchar(100) NOT NULL,
PRIMARY KEY (`FisYear`,`PublicHoliday`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `public_holiday`
--
INSERT INTO `public_holiday` VALUES (2011, '2011-08-12', 'H.M. the Queen''s Birthday');
INSERT INTO `public_holiday` VALUES (2011, '2011-10-24', 'Chulalongkorn Day');
ออกแบบตารางเก็บวันหยุดประจำปี โดยมี 3 ฟิวด์คือ FisYear,PublicHoliday,Description เก็บ ปี,วันหยุด,คำอธิบาย
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<?php
function CheckPublicHoliday($strChkDate)
{
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM public_holiday WHERE PublicHoliday = '".$strChkDate."' ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
if(!$objResult)
{
return false;
}
else
{
return true;
}
mysql_close($objConnect);
}
$strStartDate = "2011-08-01";
$strEndDate = "2011-08-15";
$intWorkDay = 0;
$intHoliday = 0;
$intPublicHoliday = 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>";
}
elseif(CheckPublicHoliday($strStartDate))
{
$intPublicHoliday++;
echo "$strStartDate = <font color=orange>Public 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";
echo "<br>Public Holiday = $intPublicHoliday";
echo "<br>All Holiday = ".($intHoliday+$intPublicHoliday);
?>
</body>
</html>
Screenshot
บทความอื่น ๆ ที่เกี่ยวข้อง
Go to : PHP ถามเรื่อง DateTime หน่อยครับ จะ Check WorkDay หาวันเสาร์-อาทิตย์ จากวันที่ต่อไปนี้
|
|
|
|
|
|