PHP Checking Work Day , Holiday ตรวจสอบวันหยุด และวันหยุดราชการ
สำหรับวิดีโอนี้จะนำเสนอตัวอย่างการเขียนโค้ดตรวจสอบวันหยุด โดยจะมีเนื้อหาเกี่ยวกับการหาจำนวนวันในระหว่างช่วงวันที่ 2 วันที่กำหนดไว้ จะได้เรียนรู้เกี่ยวกับฟังก์ชั่น strtotime() ที่ใช้แปลงวันที่เป็นวันใรรูปแบบเวลา เพื่อใช้คำนวณ การใช้ date("w", strtotime($date)) เพื่อหาค่าวันประจำสัปดาห์
[Source Code]
<html>
<head>
<meta charset="UTF-8">
<title>[REVIEW BY Cyberman] ThaiCreate.Com Tutorial</title>
</head>
<body>
<?php
function CheckPublicHoliday($strChkDate)
{
$objConnect = mysqli_connect("localhost","tobedev","abcd.1234") or die("Error Connect to Database");
$objDB = mysqli_select_db($objConnect, "test");
$strSQL = "SELECT * FROM public_holiday WHERE PublicHoliday = '".$strChkDate."' ";
$objQuery = mysqli_query($objConnect, $strSQL);
$objResult = mysqli_fetch_array($objQuery);
if(!$objResult)
{
return false;
}
else
{
return true;
}
mysqli_close($objConnect);
}
$strStartDate = "2017-05-01";
$strEndDate = "2017-05-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>";
}
$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);
?>
<br/>
</body>
</html>
--
-- Database: `test`
--
-- --------------------------------------------------------
--
-- Table structure for table `public_holiday`
--
CREATE TABLE `public_holiday` (
`FisYear` int(4) NOT NULL,
`PublicHoliday` date NOT NULL,
`Descripiton` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `public_holiday`
--
INSERT INTO `public_holiday` (`FisYear`, `PublicHoliday`, `Descripiton`) VALUES
(2017, '2017-05-04', 'วันหยุดที่ 1'),
(2017, '2017-05-12', 'วันหยุดที่ 2');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `public_holiday`
--
ALTER TABLE `public_holiday`
ADD PRIMARY KEY (`FisYear`,`PublicHoliday`);
ที่มา : http://www.thaicreate.com/community/php-workday-holiday-sunday-saturday.html
ความคิดเห็น
แสดงความคิดเห็น