12/03/2555

การหาค่าต่างของวันที่ ด้วย javascript

หากเราต้องเรามีข้อมูลเป็นวันที่ อยู่ 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 เป็นค่าลบ

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 ที่บรรทัดแรกทั้งหมดออกมา

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('') ดังตัวอย่าง

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 เสร็จแล้ว

?>

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

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 แสดงว่าหมดเวลา เมื่อหมดเวลาแล้วจะหยุดการทำงานทันที

1/17/2555

การดู ip address ของเครื่องที่เข้ามาดูเว็บไซต์

หากเราต้องการรู้ ip address ของเครื่องที่เข้ามาดูเว็บไซต์ ว่ามี ip address เป็นอะไรสามารถดูได้โดยใช้คำสั่ง

$ip=$_SERVER [ 'REMOTE_ADDR' ] ;

โดย ip address ของเครื่องที่เปิดเว็บจะเก็บอยู่ในตัวแปร $ip