หากเราต้องเรามีข้อมูลเป็นวันที่ อยู่ 2 ชุด และเราต้องการหาว่าวันที่ทั้งสองห่างกันกี่วัน
เราสามารถเขียนโปรแกรมหาได้โดยใช้ ภาษา PHP ได้ดังที่เคยกล่าวแล้วในบทความ การหาจำนวนวันที่เริ่มต้น ถึงวันที่สิ้นสุด คราวนี้เราจะมาลองดูการหาค่าต่างของวันที่ ด้วย javascript ดูบ้าง
<script>
//เรียก funtion DateDiff และส่งค่า parameter เป็นข้อมูลประเภทวันที่โดยใช้คำสั่งสร้าง object new Date
var date_diff=DateDiff(new Date("2012-12-1"),new Date("2012-12-5"));
function DateDiff(date1, date2)
{
var datediff = date1.getTime() - date2.getTime(); //เปลี่ยนวันที่เป็นวินาที และหาค่าความต่างโดยการลบ
return (datediff / (24*60*60*1000));//เปลี่ยนเวลาวินาทีเป็นจำนวนวัน โดยหารด้วย 24*60*60*1000 และ return ค่ากลับ
}
</script>
หมายเหตุ หากพารามิเตอร์ date2 มีค่ามากกว่า date1 แสดงว่า date2 มาทีหลัง date1 function Datediff จะ return เป็นค่าลบ
12/03/2555
11/21/2555
การสุ่มข้อมูลจาก array ด้วย function array_rand
/*โปรแกรมสุ่มรายชื่อใน array สองชื่อจากสี่รายชื่อ*/
/*---สร้าง array รายชื่อ---*/
$name_array[0]="สมชาย";
$name_array[1]="สมศรี";
$name_array[2]="สมศักดิ์";
$name_array[3]="สมหญิง";
//เรียก function array_rand โดยส่งค่า $name_array เป็น array ที่ต้องการสุ่ม และ 2
$rand_index = array_rand($name_array, 2);
//$rand_index เป็น array เก็บดัชนีที่สุ่มได้ใน $name_array
//แสดงรายชื่อที่สุ่มได้สองรายชื่อ
echo $name_array[$rand_index[0]];
//$rand_index[0] จะเก็บดัชนีทตัวแรกที่ได้จากการสุ่มของ $name_array
echo $name_array[$rand_index[1]];
10/29/2555
ใช้ PHP ดูชื่อไฟล์ที่มีในโฟลเดอร์
หากต้องการเราต้องการทราบรายชื่อไฟล์ที่มีอยู่ในโฟลเดอร์ใดๆ ว่ามีไฟล์ชื่ออะไรบ้าง เราสามารถเขียนโปรแกรมเพื่อดูรายชื่อไฟล์ โดยใช้ภาษา PHP ได้ดังนี้
$handle = opendir('folder_name');
//เปิดการเชื่อมต่อกับโฟลเดอร์ที่ต้องการ โดยใส่ชื่อโฟลเดอร์ใน 'folder_name' โดยใช้ตัวแปร $handle เป็นตัวอ้างอิงค์
while ($entry = readdir($handle)) {
//อ่านชื่อในไฟล์โฟลเดอร์โดยใช้ function readdir เก็บไว้ในตัวแปร $entry
if(($entry==".")||($entry=="..")){ continue; }
//หากระบบแสดง .. หรือ . เป็นชื่อไฟล์ให้ข้ามไปแสดงไฟล์ถัดไป
echo $entry;//พิมพ์ชื่อไฟล์
}
closedir($handle);//ปิดการเชื่อมต่อ
เพียงเท่านี้โปรแกรมก็จะแสดงชื่อไฟล์ต่างๆที่อยู่ในโฟลเดอร์ที่เราใส่ใน folder_name ที่บรรทัดแรกทั้งหมดออกมา
$handle = opendir('folder_name');
//เปิดการเชื่อมต่อกับโฟลเดอร์ที่ต้องการ โดยใส่ชื่อโฟลเดอร์ใน 'folder_name' โดยใช้ตัวแปร $handle เป็นตัวอ้างอิงค์
while ($entry = readdir($handle)) {
//อ่านชื่อในไฟล์โฟลเดอร์โดยใช้ function readdir เก็บไว้ในตัวแปร $entry
if(($entry==".")||($entry=="..")){ continue; }
//หากระบบแสดง .. หรือ . เป็นชื่อไฟล์ให้ข้ามไปแสดงไฟล์ถัดไป
echo $entry;//พิมพ์ชื่อไฟล์
}
closedir($handle);//ปิดการเชื่อมต่อ
เพียงเท่านี้โปรแกรมก็จะแสดงชื่อไฟล์ต่างๆที่อยู่ในโฟลเดอร์ที่เราใส่ใน folder_name ที่บรรทัดแรกทั้งหมดออกมา
7/03/2555
โปรแกรมตรวจสอบเลขที่ประจำตัวประชาชน
<script type="text/javascript"> | |
var citizen_id="1100200215075";//เลขที่ประจำตัวประชาชน | |
var id_array=new Array();//สร้าง array สำหรับเก็บข้อมูล 12 หลักแรกของแรกที่ประจำตัวประชาชน | |
var i=0; | |
for(i=0;i<(citizen_id.length-1);i++) | |
{ | |
id_array[i]=citizen_id[i];//นำหลักที่ i ของเลขที่ประจำตัวประชาชนใส่ในตัวแปร array id_array | |
} | |
for(i=0;i<id_array.length;i++) | |
{ | |
id_array[i]=id_array[i]*(13-i);//นำแลขที่ประชาชนแต่ละหลัก คูณด้วย เลขหลัก เช่น หลักที่ 13 ก็คูณด้วย 13 หลักที่ 12 ก็คูณด้วย 12 | |
} | |
var sum_citizen=0;//ตัวแปรเก็บรวมของการคูณแต่ละหลัก | |
//นำผลคูณแต่ละหลักมารวมกัน | |
for(i=0;i<id_array.length;i++) | |
{ | |
sum_citizen+=id_array[i]; | |
} | |
//เอาผลรวม หารเอาเศษด้วย 11 | |
var mod_result=0; | |
mod_result=sum_citizen%11; | |
//เอา 11 ตั้ง ลบด้วย ผลของ การหารเอาเศษ | |
var ans=11-mod_result; | |
//ถ้าเกิด ลบแล้วได้ออกมาเป็นเลข 2 หลัก ให้เอาเลขในหลักหน่วยมา | |
if(ans>10) | |
{ | |
ans=ans%10; | |
} | |
//ผลลัพธ์ที่ได้ ans ต้องเท่ากับหลักขวามือสุด ถ้าไม่เท่าแสดงว่าผิด | |
if(ans!=citizen_id[12]) | |
{ | |
alert("เลขที่ประจำตัวประชาชนไม่ถูกต้อง"); | |
} | |
</script> |
6/01/2555
การหาวันที่ถัดไป/ย้อนหลัง n วัน ใน php
ในบางระบบเราจำเป็นที่จะต้องหาวันที่ในวันถัดไป เช่น เราต้องการหาวันที่ถัดจากวันปัจจุบันไป 5 วัน หรือ วันที่ก่อนเมื่อวานนี้ 2 วัน เราสามารถหาวันที่ก่อนหน้า และย้อนหลัง โดยใช้ PHP ได้ดังนี้
<?php
//การหาวันที่ถัดไป
echo date('Y-m-d', strtotime(' +1 day'));//แสดงวันที่วันพรุ่งนี้
echo date('Y-m-d', strtotime('+60 day', strtotime("2012-5-2")));
//แสดงวันที่ถัดไปจากวันที่ 2 พค 2554 ไป 60 วัน
//การหาวันที่ก่อนหน้า
echo date('Y-m-d', strtotime(' -1 day'));//แสดงวันที่ของเมื่อวานนี้
echo date('Y-m-d', strtotime('-60 day', strtotime( "2012-1-31" )));
//แสดงวันที่ย้อนหลังไปจากวันที่ 1 มค 2554 ไป 60 วัน
?>
จะสังเกตุว่าเราสามารถหาวันที่ถัดไป หรือวันที่ย้อนหลังโดย ใส่ parameter เพิ่มเข้าไปใน function date()
โดย Parameter แรกเป็น Format วันที่ของผลที่แสดงในที่นี้คือ 'Y-m-d' คือ ปี-เดือน-วัน
Parameter ที่สองเป็น strtotime('') ซึ่ง หากต้องการหาวันที่ย้อนหลัง หรือวันหน้าหน้าจากวันปัจจุบัน ก็ให้ใส่ + หรือ - ตามด้วย จำนวนวันได้เลย ซึ่งหากใส่เป็น + จะเป็นการหาวันที่ในวันถัดๆไป หากใส่เป็น - จะเป็นการหาวันที่ ย้อนหลัง แต่ถ้าต้องการให้เริ่มนับวันจากวันที่กำหนด ซึ่งไม่ใช้วันปัจจุบัน ให้ใส่ strtotime( "ปี-เดือน-วัน" ) เป็น Parameter เพิ่มเข้าไปใน strtotime('') ดังตัวอย่าง
<?php
//การหาวันที่ถัดไป
echo date('Y-m-d', strtotime(' +1 day'));//แสดงวันที่วันพรุ่งนี้
echo date('Y-m-d', strtotime('+60 day', strtotime("2012-5-2")));
//แสดงวันที่ถัดไปจากวันที่ 2 พค 2554 ไป 60 วัน
//การหาวันที่ก่อนหน้า
echo date('Y-m-d', strtotime(' -1 day'));//แสดงวันที่ของเมื่อวานนี้
echo date('Y-m-d', strtotime('-60 day', strtotime( "2012-1-31" )));
//แสดงวันที่ย้อนหลังไปจากวันที่ 1 มค 2554 ไป 60 วัน
?>
จะสังเกตุว่าเราสามารถหาวันที่ถัดไป หรือวันที่ย้อนหลังโดย ใส่ parameter เพิ่มเข้าไปใน function date()
โดย Parameter แรกเป็น Format วันที่ของผลที่แสดงในที่นี้คือ 'Y-m-d' คือ ปี-เดือน-วัน
Parameter ที่สองเป็น strtotime('') ซึ่ง หากต้องการหาวันที่ย้อนหลัง หรือวันหน้าหน้าจากวันปัจจุบัน ก็ให้ใส่ + หรือ - ตามด้วย จำนวนวันได้เลย ซึ่งหากใส่เป็น + จะเป็นการหาวันที่ในวันถัดๆไป หากใส่เป็น - จะเป็นการหาวันที่ ย้อนหลัง แต่ถ้าต้องการให้เริ่มนับวันจากวันที่กำหนด ซึ่งไม่ใช้วันปัจจุบัน ให้ใส่ strtotime( "ปี-เดือน-วัน" ) เป็น Parameter เพิ่มเข้าไปใน strtotime('') ดังตัวอย่าง
4/24/2555
การ Upload ไฟล์ .jpg ด้วย PHP
หากเราต้องการ Upload File รปุปภาพที่เป็นไฟล์ .jpg ขึ้นไปบน server เราสามารถทำได้โดยเขียนโปรแกรมภาษา PHP ดังนี้
1. สร้างฟอร์สำหรับ Upload ไฟล์ดังนี้
<!-- สร้างฟอร์ม submit ไฟล์ ไปที่ไฟล์ upload_jpg.php โดย ตรวจสอบประเภทไฟล์ที่ upload ที่ function check_file() -->
<form action="upload_jpg.php" method="post" enctype="multipart/form-data" onsubmit="return check_file()" />
<input type="file" id="pic_file" name="pic_file" /> <!--สร้าง input ไฟล์-->
<input type="submit" value=" Upload " /> <!--สร้างปุ่ม submit-->
</form>
<script type="text/javascript">
function check_file() //function ตรวจสอบ ประเภทไฟลืที่ upload ว่าต้องเป็นไฟล์ .jpg เท่านั้น
{
var file_name=document.getElementById("pic_file").value;
//อ่านชื่อไฟล์ที่ upload มาไว้ที่ตัวแปร file_name
file_name=file_name.toLowerCase();//แปลงชื่อไฟล์ที่ Upload เป็นตัวพิมพ์เล็ก
if(file_name.indexOf(".jpg")==-1)//ตรวจสอบว่าไฟล์ที่ว่าต้องเป็น .jpg
{
alert("Please insert .jpg file");
return false; // ถ้า return false จะไม่มีการ submit ไปที่ไฟล์ uplaod_jpg.php
}
return true;
}
</script>
2. สร้างไฟล์ สำหรับ สำหรับรับไฟล์ที่เลือกมา upload ไปที่ server
<?php
$pic_file=$_FILES["pic_file"];
copy($pic_file["tmp_name"],"upload_file.jpg");
//rename file ที่ upload เป็น upload_file.jpg โดยไฟล์นี้จะอยู่ใน folder เดียวกับไฟล์ uplaod_jpg.php
echo "Finish Uploading";//แสดงข้อความว่า Upload เสร็จแล้ว
?>
1. สร้างฟอร์สำหรับ Upload ไฟล์ดังนี้
<!-- สร้างฟอร์ม submit ไฟล์ ไปที่ไฟล์ upload_jpg.php โดย ตรวจสอบประเภทไฟล์ที่ upload ที่ function check_file() -->
<form action="upload_jpg.php" method="post" enctype="multipart/form-data" onsubmit="return check_file()" />
<input type="file" id="pic_file" name="pic_file" /> <!--สร้าง input ไฟล์-->
<input type="submit" value=" Upload " /> <!--สร้างปุ่ม submit-->
</form>
<script type="text/javascript">
function check_file() //function ตรวจสอบ ประเภทไฟลืที่ upload ว่าต้องเป็นไฟล์ .jpg เท่านั้น
{
var file_name=document.getElementById("pic_file").value;
//อ่านชื่อไฟล์ที่ upload มาไว้ที่ตัวแปร file_name
file_name=file_name.toLowerCase();//แปลงชื่อไฟล์ที่ Upload เป็นตัวพิมพ์เล็ก
if(file_name.indexOf(".jpg")==-1)//ตรวจสอบว่าไฟล์ที่ว่าต้องเป็น .jpg
{
alert("Please insert .jpg file");
return false; // ถ้า return false จะไม่มีการ submit ไปที่ไฟล์ uplaod_jpg.php
}
return true;
}
</script>
2. สร้างไฟล์ สำหรับ สำหรับรับไฟล์ที่เลือกมา upload ไปที่ server
<?php
$pic_file=$_FILES["pic_file"];
copy($pic_file["tmp_name"],"upload_file.jpg");
//rename file ที่ upload เป็น upload_file.jpg โดยไฟล์นี้จะอยู่ใน folder เดียวกับไฟล์ uplaod_jpg.php
echo "Finish Uploading";//แสดงข้อความว่า Upload เสร็จแล้ว
?>
3/22/2555
การหาจำนวนวันที่เริ่มต้น ถึงวันที่สิ้นสุด
ในบางระบบเรามีความต้องการที่ต้องทราบจำนวนวันระหว่างวันเริ่มต้น และวันสิ้นสุด ว่ามีกี่วัน
เช่น วันที่ 1 มีนาคม ถึง 2 เมษายน มีจำนวนวันทั้งสิ้น 33 วัน ระบบที่ต้องการนับจำนวนวันได้แก่ ระบบจองห้องพัก ต้องการทราบว่าลูกค้าจองห้องพักทั้งหมดกี่วันโดยนับวันที่เริ่มจอง จนถึงวันที่สิ้นสุดการจอง
เราสามารถเขียนโปรแกรม นับจำนวนวันได้ดังนี้
<?php
$strDate1="2012-01-01";//วันที่เริ่มต้น
$strDate2="2012-02-1";//วันที่สิ้นสุด
echo DateDiff($strDate1,$strDate2);//เรียก function DateDiff เพื่อหาจำนวนวันระว่างวันเริ่มต้น และวันที่สิ้นสุด
//สร้า้ง function DateDiff โดยรับค่าวันที่เริ่มต้น $strDate1 และวันที่สิ้นสุด $strDate2
function DateDiff($strDate1,$strDate2)
{
//คำนวนหาวันที่โดยแปลงวันที่เป็นวินาที นำวินาทีวันที่สิ้นสุด - วินาทีวันที่เริ่มต้น
//แล้วหารด้วย 86400 ( 1 วันมี 86400 วินาที ) จะได้จำนวนวัน
return (strtotime($strDate2) - strtotime($strDate1))/ ( 60 * 60 * 24 );
}
?>
ผลที่ได้คือ 31
เช่น วันที่ 1 มีนาคม ถึง 2 เมษายน มีจำนวนวันทั้งสิ้น 33 วัน ระบบที่ต้องการนับจำนวนวันได้แก่ ระบบจองห้องพัก ต้องการทราบว่าลูกค้าจองห้องพักทั้งหมดกี่วันโดยนับวันที่เริ่มจอง จนถึงวันที่สิ้นสุดการจอง
เราสามารถเขียนโปรแกรม นับจำนวนวันได้ดังนี้
<?php
$strDate1="2012-01-01";//วันที่เริ่มต้น
$strDate2="2012-02-1";//วันที่สิ้นสุด
echo DateDiff($strDate1,$strDate2);//เรียก function DateDiff เพื่อหาจำนวนวันระว่างวันเริ่มต้น และวันที่สิ้นสุด
//สร้า้ง function DateDiff โดยรับค่าวันที่เริ่มต้น $strDate1 และวันที่สิ้นสุด $strDate2
function DateDiff($strDate1,$strDate2)
{
//คำนวนหาวันที่โดยแปลงวันที่เป็นวินาที นำวินาทีวันที่สิ้นสุด - วินาทีวันที่เริ่มต้น
//แล้วหารด้วย 86400 ( 1 วันมี 86400 วินาที ) จะได้จำนวนวัน
return (strtotime($strDate2) - strtotime($strDate1))/ ( 60 * 60 * 24 );
}
?>
ผลที่ได้คือ 31
2/28/2555
การเขียนโปรแกรมนับถอยหลัง 10 วินาที ด้วย javascript
หากเราต้องการจำกัดเวลาการใช้งานของ user ในหน้าเว็บว่าต้องทำให้เสร็จภายในเวลาที่กำหนด ( เช่นระบบทำข้อสอบ online ) เราสามารถเขียนโปรแรมจับเวลานับถอยหลังโดยใช้ javascript ได้ดังนี้
<input type="text" size="8" id="counter" /> <!-- text box แสดงการนับถอยหลัง -->
<script>
var seconds=10;// กำหนดค่าเริ่มต้น 10 วินาที
document.getElementById("counter").value='10';//แสดงค่าเริ่มต้นใน 10 วินาที ใน text box
function display(){ //function ใช้ในการ นับถอยหลัง
seconds-=1;//ลบเวลาทีละหนึ่งวินาทีทุกครั้งที่ function ทำงาน
if(seconds==-1){return;} //เมื่อหมดเวลาแล้วจะหยุดการทำงานของ function display
document.getElementById("counter").value=seconds; //แสดงเวลาที่เหลือ
setTimeout("display()",1000);// สั่งให้ function display() ทำงาน หลังเวลาผ่านไป 1000 milliseconds ( 1000 milliseconds = 1 วินาที )
}
display(); //เปิดหน้าเว็บให้ทำงาน function display()
</script>
หัวใจสำคัญของโปรแกรมนับเวลาถอยหลังนี้คือ การทำ recursive ใน function display() โดยจะสั่งให้ function display() ทำงานซ้ำ หลังเวลาผ่านไป 1 วินาที และลบค่า ตัวแปร seconds ทีละหนึ่ง คือเวลาที่เหลือ เมื่อเวลาที่เหลือ น้อยกว่า 0 แสดงว่าหมดเวลา เมื่อหมดเวลาแล้วจะหยุดการทำงานทันที
<input type="text" size="8" id="counter" /> <!-- text box แสดงการนับถอยหลัง -->
<script>
var seconds=10;// กำหนดค่าเริ่มต้น 10 วินาที
document.getElementById("counter").value='10';//แสดงค่าเริ่มต้นใน 10 วินาที ใน text box
function display(){ //function ใช้ในการ นับถอยหลัง
seconds-=1;//ลบเวลาทีละหนึ่งวินาทีทุกครั้งที่ function ทำงาน
if(seconds==-1){return;} //เมื่อหมดเวลาแล้วจะหยุดการทำงานของ function display
document.getElementById("counter").value=seconds; //แสดงเวลาที่เหลือ
setTimeout("display()",1000);// สั่งให้ function display() ทำงาน หลังเวลาผ่านไป 1000 milliseconds ( 1000 milliseconds = 1 วินาที )
}
display(); //เปิดหน้าเว็บให้ทำงาน function display()
</script>
หัวใจสำคัญของโปรแกรมนับเวลาถอยหลังนี้คือ การทำ recursive ใน function display() โดยจะสั่งให้ function display() ทำงานซ้ำ หลังเวลาผ่านไป 1 วินาที และลบค่า ตัวแปร seconds ทีละหนึ่ง คือเวลาที่เหลือ เมื่อเวลาที่เหลือ น้อยกว่า 0 แสดงว่าหมดเวลา เมื่อหมดเวลาแล้วจะหยุดการทำงานทันที
1/17/2555
การดู ip address ของเครื่องที่เข้ามาดูเว็บไซต์
หากเราต้องการรู้ ip address ของเครื่องที่เข้ามาดูเว็บไซต์ ว่ามี ip address เป็นอะไรสามารถดูได้โดยใช้คำสั่ง
$ip=$_SERVER [ 'REMOTE_ADDR' ] ;
โดย ip address ของเครื่องที่เปิดเว็บจะเก็บอยู่ในตัวแปร $ip
$ip=$_SERVER [ 'REMOTE_ADDR' ] ;
โดย ip address ของเครื่องที่เปิดเว็บจะเก็บอยู่ในตัวแปร $ip
สมัครสมาชิก:
บทความ (Atom)