Thu 20 Apr 2006 11:28:48
1) ตัดตัวอักษรให้แสดงเฉพาะตัวสุดท้ายเช่น ใส่ 4302 => ผลลัพธ์เป็น 2 (ข้อนี้ทำได้คับ)
2) เติมตัวเลข 0 ให้หน้าตัวเลขต่างๆโดยที่เราสามารถกำหนดจำนวนเลข 0 ได้ เช่น มีตัวเลข 12 หากกำหนดให้แสดง 0 ออกมาหนึ่งตัวก็จะได้ = 012 , หากกำหนดให้แสดง 0 ออกมาสองตัวก็จะได้ = 0012 (หุหุ ข้อนี้ทำไม่ได้คับ )
3) เปรียบเทียบวันที่ว่าห่างกี่วัน เช่น วันแรก 12/03/2006 และอีกวันคือ 09/04/2006 ว่าทั้งสองวันนี้ห่างกันทั้งหมดกี่วันคับ (อันนี้ทำไม่ได้คับ )
4) ให้กรอกตัวเลขแล้วแปลงเป็นตัวอักษรเงิน เช่น 112 จะได้ = หนึ่งร้อยสิบสองบาท (อันนี้ค้นหาในกระทู้เก่าๆ เจอแล้วคับ แต่ต้องลองรันดูอีกทีคับ )
5) ให้แทนที่คำที่ต้องการ เช่นพิมพ์คำว่า "วันนี้กินข้าว" ผมต้องการจะแทนที่คำว่า "ข้าว" เป็น "นมสด" ผลลัพธ์ที่ได้คือ "วันนี้กินนมสด" (ข้อนี้ทำได้แล้วครับ )
**** คือว่าเรื่องทั้งเรื่องคือผมไปสอบมา แล้วมีข้อที่ทำได้บ้าง และไม่ได้บ้าง ก็มีข้อสงสัยว่าเราควรจะเขียนอย่างไร และใช้ Function อะไรน่ะคับ เพื่อเอาไว้ไปเจอข้อสอบแบบนี้อีก **** ขอบพระคุณครับ
sprintf("%03d", 12); // จะแสดงผล 012
sprintf("%04d", 12); //จะแสดงผล 0012
ข้อ 3 ค่อนข้างยาวครับ ลองเอาโค๊ดนี้ เป็นของชาวต่างชาติครับ
<?php
function bib_datediff($fromtime, $totime=''){
if($totime=='') $totime = time();
if($fromtime>$totime){
$tmp = $totime;
$totime = $fromtime;
$fromtime = $tmp;
}
$timediff = $totime-$fromtime;
//check for leap years in the middle
for($i=date('Y',$fromtime); $i<=date('Y',$totime); $i++){
if ((($i%4 == 0) && ($i%100 != 0)) || ($i%400 == 0)) {
$timediff -= 24*60*60;
}
}
$remain = $timediff;
$ret['years'] = intval($remain/(365*24*60*60));
$remain = $remain%(365*24*60*60);
$ret['days'] = intval($remain/(24*60*60));
$remain = $remain%(24*60*60);
$m[0] = 31; $m[1] = 28; $m[2] = 31; $m[3] = 30;
$m[4] = 31; $m[5] = 30; $m[6] = 31; $m[7] = 31;
$m[8] = 30; $m[9] = 31; $m[10] = 30; $m[11] = 31;
//if leap year, february has 29 days
if (((date('Y',$totime)%4 == 0) && (date('Y',$totime)%100 != 0)) || (date('Y',$totime)%400 == 0)){
$m[1] = 29;
}
$ret['months'] = 0;
foreach($m as $value){
if($ret['days']>$value){
$ret['months']++;
$ret['days'] -=$value;
} else {
break;
}
}
$ret['hours'] = intval($remain/(60*60));
$remain = $remain%(60*60);
$ret['minutes'] = intval($remain/60);
$ret['seconds'] = $remain%60;
return $ret;
}
?>
การหาโค๊ดเพื่อศึกษาลองอ่าน Online manual ของ php ครับจะมีการ discuss
ในส่วนของ forum ข้างล่างฟังก์ชั่นนั้นๆครับ
นำมาเป็นแรวทางการพัฒนาได้เยอะครับ
Thu 20 Apr 2006 17:59:10
ข้อสามใช้การแปลงเป็น timestamp จะหาจำนวนวันได้ง่ายกว่าครับ และไม่พลาดเรื่องปีไหนเดือน กพ มี 28 หรือ 29 วันด้วย โค๊ตก็สั้นกว่า
ิิ<?
//สปลิส เอาวันเดือนปีไปใส่ใน array ก่อน
$arr_bdate = split("/",$bdate);
$arr_fdate = split("/",$fdate);
//ทำให้เป็น timestamp ซึ่งจะได้เลขจำนวนเต็มที่สามารถลบกันได้
$num_bdate = mktime(0, 0, 0, $arr_bdate[1] , $arr_bdate[0], $arr_bdate[2]);
$num_fdate = mktime(0, 0, 0, $arr_fbdate[1] , $arr_bdate[0], $arr_bdate[2]);
$diffnumdate = $num_fdate - $num_bdate;
echo $diff_date = $diffnumdate/86400; //หารด้วย 86400 เพราะหนึ่งวันมี 60*60*24 วินาที
?>
Mon 17 Mar 2008 18:40:01

















