 |
รบกวนแก้ไข โค้ดคำนวนระยะห่างของวัน ให้ด้วยครับ เกิด Error |
|
 |
|
|
 |
 |
|
สวัสดีครับ ผมเป็นคนหนึ่งที่สนใจการเขียนโปรแกรมด้วย PHP แต่ไม่ค่อยมีความรู้ ได้เข้ามาดู บทความและกระทู้ ในเว็บนี้มานานพอสมควร
วันนี้ผมมีเรื่องจะมาปรึกษา ท่านผู้รู้เกี่ยวกับโค้ด หาระยะห่างของวันที่
หาผมตั้งกระทู้ไม่ถูกต้องประการใด ขอประทานอภัยมา ณ ที่นี้ด้วยครับ ขอบคุณครับ
รบกวนดูโค้ดนี้ด้วยครับ คือผมจะทำการคำนวณระยะห่างของวันที่ ซึ่งได้โค้ดนี้มาจาก
http://www.softwaresiam.com/viewthread.php?tid=335&extra=page%3D1
ซึ่งมีโค้ดังนี้
<?php
####### รูปแบบของวันที่ ที่อาจจะเก็บลงในฐานข้อมูลแบบนี้ ######
$start_date=?17/03/2007?; // วันที่เริ่มใช้บริการ
$expire_date=?17/03/2008?;//วันสิ้นสุดการใช้บริการ
$today_date=date(?d/m/Y ?);//วันที่ของวันนี้
## ฟังก์ชั่น explode ใช้แยกเครื่องหมาย ( / ) ออกจากข้อความ แล้วเอาข้อความที่ได้ไปแยกเก็บลงใน array ##
/* วันที่เริ่มใช้บริการ */
$start_explode = explode(?/?, $start_date);
$start_day = $start_explode[0];
$start_month = $start_explode[1];
$start_year = $start_explode[2];
/*วันสิ้นสุดการใช้บริการ*/
$expire_explode = explode(?/?, $expire_date);
$expire_day = $expire_explode[0];
$expire_month = $expire_explode[1];
$expire_year = $expire_explode[2];
/*วันที่ของวันนี้*/
$today_explode = explode(?/?, $today_date);
$today_day = $today_explode[0];
$today_month = $today_explode[1];
$today_year = $today_explode[2];
/* ฟังก์ชั่น gregoriantojd เป็นฟังก์ชั่นที่เอาไว้แปลงวันที่ เพื่อใช้คำนวณหาจำนวนวัน
รูปแบบการใช้งาน gregoriantojd ( int $month, int $day, int $year )
โฮสที่ใช้ต้องทำการเปิด extension calendar ของ php ด้วย ถึงจะใช้งานได้*/
$start = gregoriantojd($start_month,$start_day,$start_year);
$expire = gregoriantojd($expire_month,$expire_day,$expire_year);
$today = gregoriantojd($today_month,$today_day,$today_year);
$period_of_time = $expire-$start; //หาระยะเวลาการใช้งาน
$date_current=$expire-$today;//หาวันที่เหลืออยู่
echo ?เริ่มใช้บริการวันที่ :?,$start_date,?<br>?;
echo ?สิ้นสุดวันใช้บริการวันที่ :?,$expire_date,?<br>?;
echo ?ระยะเวลาการใช้งาน : ?,$period_of_time ,? วัน<br>? ;
echo ?<b>วันนี้</b> ?.วันที่ $today_date ขณะนี้จึงเหลือเวลาอีก :?,$date_current,? วัน จึงจะถึงวันที่ $expire_date ซึ่งเป็นวันหมดอายุการใช้งาน<br>?;
?>
ผลลัพธ์จะออกมาเช่นนี้
เริ่มใช้บริการวันที่ :17/03/2007
สิ้นสุดวันใช้บริการวันที่ :17/03/2008
ระยะเวลาการใช้งาน : 366 วัน
วันนี้ ?.วันที่ 18/03/2007 ขณะนี้จึงเหลือเวลาอีก :365 วัน จึงจะถึงวันที่ 17/03/2008 ซึ่งเป็นวันหมดอายุการใช้งาน
ลองเอาไปประยุกต์ใส่เงื่อนไขกันดูครับ
เช่น เช็คค่าถ้าเหลือ 15 วัน ส่งเมลล์แจ้งเตือนอัติโนมัติให้ลูกค้ามาต่ออายุ อะไรทำนองนี้อ่ะครับ
วิธีการนำโค้ดข้างต้นไปใช้สำหรับโฮสที่ไม่ได้ลง extension calendar ของ php
พอดีผมทำให้ลูกค้าเค้าจะเอาไปใช้ที่โฮสเค้า
พอไปลงโปรแกรมปรากฎว่าโปรแกรมรันไม่ได้ครับ
เพราะว่าโฮสที่เค้าเช่าไม่ได้ลง extension calendar ของ php
ก็เลยไป Search หาวิธีมา เจอว่า ถ้าไม่ได้ลง ก็ไม่เป็นไร
ไม่ต้องไปบอกให้เจ้าของ Server เค้าลงให้ หรือว่าเปิดให้ใช้งาน
เพียงเอาฟังก์ชั่นด้านล่างนี้ใส่ แล้ว include ไปใช้งาน ก็ใช้งานได้ล่ะครับ
<?php
function GregorianToJD ($month,$day,$year) {
if ($month > 2) {
$month = $month - 3;
} else {
$month = $month + 9;
$year = $year - 1;
}
$c = floor($year / 100);
$ya = $year - (100 * $c);
$j = floor((146097 * $c) / 4);
$j += floor((1461 * $ya)/4);
$j += floor(((153 * $month) + 2) / 5);
$j += $day + 1721119;
return $j;
}
ตอนใช้งานครั้งแรก มีปัญหา ในเรื่องของ syntax error, unexpected '?' ผมจึงได้ทำการลบ เครื่องหมาย ? ออก โค้ดในส่วนแรกจึงใช้ได้ แต่สุดท้ายก็มีปัญหา ในส่วนของ function GregorianToJD ซึ่งมีการแจ้ง ว่า
Fatal error: Cannot redeclare gregoriantojd() in C:\AppServ\www\date1.php on line 24 ณ บรรทัดที่ 24 นี้จะเป็นคำสั่ง Return
รบกวนผู้รู้ช่วยผมด้วยนะครับ
**ปล. โค้ดส่วนแรกที่ผมใช้ได้ include function GregorianToJD เข้าไปแล้วครับ แต่โค้ดที่แสดงอยู่นี้ เอามาจากเว็บที่ผมเจอ
Tag : PHP, CakePHP
|
|
 |
 |
 |
 |
Date :
2010-11-23 09:23:06 |
By :
l3ank |
View :
3052 |
Reply :
20 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
นี่เอาโค๊ดไปแปลงในโปรแกรม และหรือ ก๊อปเขามาเนี่ย มันผิด syntax แบบไม่น่าให้อภัยครับ(แก้ให้แล้วนะครับลองเอาไปรันดูครับ)
<?php
####### รูปแบบของวันที่ ที่อาจจะเก็บลงในฐานข้อมูลแบบนี้ ######
$start_date=17/03/2007; // วันที่เริ่มใช้บริการ
$expire_date=17/03/2008;//วันสิ้นสุดการใช้บริการ
$today_date=date(d/m/Y );//วันที่ของวันนี้
## ฟังก์ชั่น explode ใช้แยกเครื่องหมาย ( / ) ออกจากข้อความ แล้วเอาข้อความที่ได้ไปแยกเก็บลงใน array ##
/* วันที่เริ่มใช้บริการ */
$start_explode = explode('/', $start_date);
$start_day = $start_explode[0];
$start_month = $start_explode[1];
$start_year = $start_explode[2];
/*วันสิ้นสุดการใช้บริการ*/
$expire_explode = explode('/', $expire_date);
$expire_day = $expire_explode[0];
$expire_month = $expire_explode[1];
$expire_year = $expire_explode[2];
/*วันที่ของวันนี้*/
$today_explode = explode('/', $today_date);
$today_day = $today_explode[0];
$today_month = $today_explode[1];
$today_year = $today_explode[2];
/* ฟังก์ชั่น gregoriantojd เป็นฟังก์ชั่นที่เอาไว้แปลงวันที่ เพื่อใช้คำนวณหาจำนวนวัน
รูปแบบการใช้งาน gregoriantojd ( int $month, int $day, int $year )
โฮสที่ใช้ต้องทำการเปิด extension calendar ของ php ด้วย ถึงจะใช้งานได้*/
$start = gregoriantojd($start_month,$start_day,$start_year);
$expire = gregoriantojd($expire_month,$expire_day,$expire_year);
$today = gregoriantojd($today_month,$today_day,$today_year);
$period_of_time = $expire-$start; //หาระยะเวลาการใช้งาน
$date_current=$expire-$today;//หาวันที่เหลืออยู่
echo "เริ่มใช้บริการวันที่ :"; $start_date; echo"<br>";
echo "สิ้นสุดวันใช้บริการวันที่ :"; $expire_date; echo"<br>";
echo "ระยะเวลาการใช้งาน : ";$period_of_time; echo" วัน<br>";
echo "<b>วันนี้</b> วันที่"; $today_date; echo"ขณะนี้จึงเหลือเวลาอีก :"; $date_current; echo" วัน จึงจะถึงวันที่ "; $expire_date; echo"ซึ่งเป็นวันหมดอายุการใช้งาน<br>";
?>
ผลลัพธ์จะออกมาเช่นนี้
เริ่มใช้บริการวันที่ :17/03/2007
สิ้นสุดวันใช้บริการวันที่ :17/03/2008
ระยะเวลาการใช้งาน : 366 วัน
วันนี้ ?.วันที่ 18/03/2007 ขณะนี้จึงเหลือเวลาอีก :365 วัน จึงจะถึงวันที่ 17/03/2008 ซึ่งเป็นวันหมดอายุการใช้งาน
ลองเอาไปประยุกต์ใส่เงื่อนไขกันดูครับ
เช่น เช็คค่าถ้าเหลือ 15 วัน ส่งเมลล์แจ้งเตือนอัติโนมัติให้ลูกค้ามาต่ออายุ อะไรทำนองนี้อ่ะครับ
วิธีการนำโค้ดข้างต้นไปใช้สำหรับโฮสที่ไม่ได้ลง extension calendar ของ php
พอดีผมทำให้ลูกค้าเค้าจะเอาไปใช้ที่โฮสเค้า
พอไปลงโปรแกรมปรากฎว่าโปรแกรมรันไม่ได้ครับ
เพราะว่าโฮสที่เค้าเช่าไม่ได้ลง extension calendar ของ php
ก็เลยไป Search หาวิธีมา เจอว่า ถ้าไม่ได้ลง ก็ไม่เป็นไร
ไม่ต้องไปบอกให้เจ้าของ Server เค้าลงให้ หรือว่าเปิดให้ใช้งาน
เพียงเอาฟังก์ชั่นด้านล่างนี้ใส่ แล้ว include ไปใช้งาน ก็ใช้งานได้ล่ะครับ
<?php
function GregorianToJD ($month,$day,$year) {
if ($month > 2) {
$month = $month - 3;
} else {
$month = $month + 9;
$year = $year - 1;
}
$c = floor($year / 100);
$ya = $year - (100 * $c);
$j = floor((146097 * $c) / 4);
$j += floor((1461 * $ya)/4);
$j += floor(((153 * $month) + 2) / 5);
$j += $day + 1721119;
return $j;
}
?>
|
ประวัติการแก้ไข 2010-11-23 09:50:31
 |
 |
 |
 |
Date :
2010-11-23 09:49:15 |
By :
Dragons_first |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ ที่ช่วยแก้ไขให้ แต่ก็ยังมีข้อผิดพลาดอยู่ดีครับเมื่อรันจะฟ้องว่า
Warning: Division by zero in C:\AppServ\www\date.php on line 7
Warning: Division by zero in C:\AppServ\www\date.php on line 7
Warning: gregoriantojd() expects parameter 2 to be long, string given in C:\AppServ\www\date.php on line 39
**โค้ดส่วนแรก ผมตั้งชื่อว่า date.php ส่วนที่เป็น function ตั้งว่า date1.php**
หากผม include หน้า date1.php จะฟ้องว่า
Fatal error: Cannot redeclare gregoriantojd() in C:\AppServ\www\date1.php on line 32
ผมควรทำยังไงดีครับ ไปไม่เป็นจริง
|
 |
 |
 |
 |
Date :
2010-11-23 10:02:34 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดูแบบนี้นะครับ
**************************************************************
<?php
function GregorianToJD ($month,$day,$year) {
if ($month > 2) {
$month = $month - 3;
} else {
$month = $month + 9;
$year = $year - 1;
}
$c = floor($year / 100);
$ya = $year - (100 * $c);
$j = floor((146097 * $c) / 4);
$j += floor((1461 * $ya)/4);
$j += floor(((153 * $month) + 2) / 5);
$j += $day + 1721119;
return $j;
}
*******************************************************
include('date1.php');//เรียกใช้งานฟังก์ชั่น
$Gregorian = GregorianToJD ($month,$day,$year);///วิธีการใช้งานในโปรแกรม
echo "$Gregorian";//ใส่ไว้ในตำแหน่งที่ต้องการหรือไม่ต้องลงโค๊ดนี้ถ้าหากว่าฟังก์ชั่นทำงานแล้ว
####### รูปแบบของวันที่ ที่อาจจะเก็บลงในฐานข้อมูลแบบนี้ ######
$start_date=17/03/2007; // วันที่เริ่มใช้บริการ
$expire_date=17/03/2008;//วันสิ้นสุดการใช้บริการ
$today_date=date(d/m/Y );//วันที่ของวันนี้
## ฟังก์ชั่น explode ใช้แยกเครื่องหมาย ( / ) ออกจากข้อความ แล้วเอาข้อความที่ได้ไปแยกเก็บลงใน array ##
/* วันที่เริ่มใช้บริการ */
$start_explode = explode('/', $start_date);
$start_day = $start_explode[0];
$start_month = $start_explode[1];
$start_year = $start_explode[2];
/*วันสิ้นสุดการใช้บริการ*/
$expire_explode = explode('/', $expire_date);
$expire_day = $expire_explode[0];
$expire_month = $expire_explode[1];
$expire_year = $expire_explode[2];
/*วันที่ของวันนี้*/
$today_explode = explode('/', $today_date);
$today_day = $today_explode[0];
$today_month = $today_explode[1];
$today_year = $today_explode[2];
/* ฟังก์ชั่น gregoriantojd เป็นฟังก์ชั่นที่เอาไว้แปลงวันที่ เพื่อใช้คำนวณหาจำนวนวัน
รูปแบบการใช้งาน gregoriantojd ( int $month, int $day, int $year )
โฮสที่ใช้ต้องทำการเปิด extension calendar ของ php ด้วย ถึงจะใช้งานได้*/
$start = gregoriantojd($start_month,$start_day,$start_year);
$expire = gregoriantojd($expire_month,$expire_day,$expire_year);
$today = gregoriantojd($today_month,$today_day,$today_year);
$period_of_time = $expire-$start; //หาระยะเวลาการใช้งาน
$date_current=$expire-$today;//หาวันที่เหลืออยู่
echo "เริ่มใช้บริการวันที่ :"; $start_date; echo"<br>";
echo "สิ้นสุดวันใช้บริการวันที่ :"; $expire_date; echo"<br>";
echo "ระยะเวลาการใช้งาน : ";$period_of_time; echo" วัน<br>";
echo "<b>วันนี้</b> วันที่"; $today_date; echo"ขณะนี้จึงเหลือเวลาอีก :"; $date_current; echo" วัน จึงจะถึงวันที่ "; $expire_date; echo"ซึ่งเป็นวันหมดอายุการใช้งาน<br>";
?>
|
 |
 |
 |
 |
Date :
2010-11-23 10:20:26 |
By :
Dragons_first |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณนะครับที่ช่วยเหลือ ไม่ทราบว่าคุณอ้นคุง ได้ลองรันดูรึเปล่าครับ
เพราะทางผมนำโค้ดไปรันแล้วยังเจอปัญหาอยู่ครับ เลยไม่แน่ใจว่าเป็น ที่เครื่องผมรึเปล่า
จากโค้ดที่คุณช่วยแก้ไขล่าสุดครับ ฟ้องว่า
Fatal error: Cannot redeclare gregoriantojd() in C:\AppServ\www\date1.php on line 16
ซึ่งเริ่มต้นจากตรงนี้ $expire_explode = explode('/', $expire_date); บรรทัดนี้ครับที่ฟ้องขึ้นมา
แล้วเมื่อผมเอาคำสั่ง include ออก จะฟ้องว่า
Warning: Division by zero in C:\AppServ\www\date.php on line 8
Warning: Division by zero in C:\AppServ\www\date.php on line 8
Warning: gregoriantojd() expects parameter 2 to be long, string given in C:\AppServ\www\date.php on line 30
เริ่มใช้บริการวันที่ :
สิ้นสุดวันใช้บริการวันที่ :
ระยะเวลาการใช้งาน : วัน
วันนี้ วันที่ขณะนี้จึงเหลือเวลาอีก : วัน จึงจะถึงวันที่ ซึ่งเป็นวันหมดอายุการใช้งาน
ขอบคุณมากนะครับที่ให้ความช่วยเหลือ ผมจะพยายามศึกษาไปด้วย
|
 |
 |
 |
 |
Date :
2010-11-23 10:32:43 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พวก wordpress มันแปลง " น่ะ
23.$start_date=17/03/2007; // วันที่เริ่มใช้บริการ
24.$expire_date=17/03/2008;//วันสิ้นสุดการใช้บริการ
25.$today_date=date(d/m/Y );//วันที่ของวันนี้
ตรงนี้ก็อภัยให้ได้ อิๆ เอาวันมาหารเดือนเดือนมาหารปี
|
 |
 |
 |
 |
Date :
2010-11-23 10:42:52 |
By :
:) |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือผมไม่ได้รันดูนะครับ ยังไงก็ขออภัยด้วยนะครับ
|
 |
 |
 |
 |
Date :
2010-11-23 11:00:53 |
By :
Dragons_first |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดูแบบนี้นะครับว่ารันได้ไหม
<?php
include('date1.php');
####### รูปแบบของวันที่ ที่อาจจะเก็บลงในฐานข้อมูลแบบนี้ ######
$start_date=17/03/2007; // วันที่เริ่มใช้บริการ
$expire_date=17/03/2008;//วันสิ้นสุดการใช้บริการ
$today_date='date(d/m/Y )';//วันที่ของวันนี้
## ฟังก์ชั่น explode ใช้แยกเครื่องหมาย ( / ) ออกจากข้อความ แล้วเอาข้อความที่ได้ไปแยกเก็บลงใน array ##
/* วันที่เริ่มใช้บริการ */
$start_explode = explode('/', $start_date);
$start_day = $start_explode[0];
$start_month = $start_explode[1];
$start_year = $start_explode[2];
/*วันสิ้นสุดการใช้บริการ*/
$expire_explode = explode('/', $expire_date);
$expire_day = $expire_explode[0];
$expire_month = $expire_explode[1];
$expire_year = $expire_explode[2];
/*วันที่ของวันนี้*/
$today_explode = explode('/', $today_date);
$today_day = $today_explode[0];
$today_month = $today_explode[1];
$today_year = $today_explode[2];
/* ฟังก์ชั่น gregoriantojd เป็นฟังก์ชั่นที่เอาไว้แปลงวันที่ เพื่อใช้คำนวณหาจำนวนวัน
รูปแบบการใช้งาน gregoriantojd ( int $month, int $day, int $year )
โฮสที่ใช้ต้องทำการเปิด extension calendar ของ php ด้วย ถึงจะใช้งานได้*/
$start = gregoriantojd($start_month,$start_day,$start_year);
$expire = gregoriantojd($expire_month,$expire_day,$expire_year);
$today = 'gregoriantojd($today_month,$today_day,$today_year)';
$period_of_time = $expire-$start; //หาระยะเวลาการใช้งาน
$date_current=$expire-$today;//หาวันที่เหลืออยู่
echo "เริ่มใช้บริการวันที่ :"; $start_date; echo"<br>";
echo "สิ้นสุดวันใช้บริการวันที่ :"; $expire_date; echo"<br>";
echo "ระยะเวลาการใช้งาน : ";$period_of_time; echo" วัน<br>";
echo "<b>วันนี้</b> วันที่"; $today_date; echo"ขณะนี้จึงเหลือเวลาอีก :"; $date_current; echo" วัน จึงจะถึงวันที่ "; $expire_date; echo"ซึ่งเป็นวันหมดอายุการใช้งาน<br>";
?>
|
ประวัติการแก้ไข 2010-11-23 11:17:51
 |
 |
 |
 |
Date :
2010-11-23 11:16:57 |
By :
Dragons_first |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กรณีที่ตัวหารเป็น 0 ถ้าง่ายสุดก็ใส่ @ เข้าหน้าครับ เช่น
Code (PHP)
$j += @floor(((153 * $month) + 2) / 0);
|
 |
 |
 |
 |
Date :
2010-11-23 11:47:54 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมไม่ได้อ่านโค้ดเท่าไหร่นะ คิดว่าคุณต้องการหาระยะวันเหลือ กับ วันที่เตือนใช่ป่าว?
Code (PHP)
$start_date = '17/03/2007';
$expire_date = '17/03/2008';
$new_start_date = join('/', array_reverse(explode('/', $start_date))); // to Y/m/d
$new_expire_date = join('/', array_reverse(explode('/', $expire_date)));
$start_timestamp = strtotime($new_start_date);
$expire_timestamp = strtotime($new_expire_date);
$warning_timestamp = $expire_timestamp - (15 * 86400); // -15 วัน
$day_left = ceil(($expire_timestamp - $start_timestamp) / 86400); // เหลือ
$warning_day = date('d/m/Y', $warning_timestamp);
echo $day_left, '<br>';
echo $warning_day;
http://www.pjgunner.com
|
 |
 |
 |
 |
Date :
2010-11-24 21:02:45 |
By :
pjgunner.com |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผม ต้องการระยะห่าง วัน เดือน ปี เพื่อนนำไปคำนวณ น่ะครับ
|
 |
 |
 |
 |
Date :
2010-11-25 10:56:40 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จากโค้ดที่ให้มานำมาลองรันใช้งานแล้วโดยไม่ต้อง include function GregorianToJD() ก้สามารถใช้งานได้ปกติค่ะ
เพียงแต่ผลลัพธ์ที่ได้จะออกมาเป็น จำนวนวัน เท่านั้นเอง
|
 |
 |
 |
 |
Date :
2010-11-25 12:23:39 |
By :
ultrasiam |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้ครับ งั้น ถ้าผมต้องการคำนวณเป็น ปีแบะเดือน ต้องสร้างโค้เพิ่ม เข้ามาอีกใช่มั๊ยคับ
ปีไม่เท่าไหร่หรอก แต่จำนวนเดือนนี่สิ คิดไม่ออกเลย
|
 |
 |
 |
 |
Date :
2010-11-25 13:14:33 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
งั้นรบกวนดูโค้ดนี้ด้วยอีกทีจะเป็นพระคุณมากครับ ติดerror ครับ เท่าที่ดูผมก็ไม่ทราบว่าเกิดจากอะไร
Code (PHP)
<?PHP
function calage($pbday)
{
$today = date(d/m/Y);
list($bady , $bmonth , $byear) = explode('/' , $pbday);
list($tday , $tmonth , $tyear) = explode('/' , $today);
if($byear < 1970)
{
$yearad =1970 – $byear;
$byear =1970;
}else
{
$yearad = 0;
}
$mbirth = mktime(0,0,0,$bmonth,$bday,$byear);
$mnow = mktime(0,0,0,$tmonth,$tday,$tyear);
$mage= ($mnow – $mbirth);
$age = (date('Y',$mage)-1970 + $yearad)."ปี".
(date('m', $mage)-1)." เดือน".
(date('d', $mage)-1)." วัน" ;
return($age);
}
$birthday ="07/08/1985";
print "วันเกิด $birthday <BR>";
print "อายุของคุณคือ ".calage($birthday);
?>
|
 |
 |
 |
 |
Date :
2010-11-26 12:50:06 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
error ว่าไงคะ
|
 |
 |
 |
 |
Date :
2010-11-26 12:52:17 |
By :
ultrasiam |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Error แบบนี้ครับ
Parse error: syntax error, unexpected T_STRING in C:\AppServ\www\1.php on line 10
ผมไม่เก่งเรื่องนี้ แต่จำเป็นต้องใช้งานครับ รบกวนด้วยครับ
|
 |
 |
 |
 |
Date :
2010-11-26 12:55:06 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?php
function calage($pbday)
{
$today = date("d/m/Y");
list($bady , $bmonth , $byear) = explode('/' , $pbday);
list($tday , $tmonth , $tyear) = explode('/' , $today);
if($byear < 1970)
{
$yearad =1970-$byear;
$byear =1970;
}else
{
$yearad = 0;
}
$mbirth = mktime(0,0,0,$bmonth,$bday,$byear);
$mnow = mktime(0,0,0,$tmonth,$tday,$tyear);
$mage= ($mnow-$mbirth);
$age = (date('Y',$mage)-1970 + $yearad)."ปี".
(date('m', $mage)-1)." เดือน".
(date('d', $mage)-1)." วัน" ;
return($age);
}
$birthday ="07/08/1985";
print "วันเกิด $birthday <BR>";
print "อายุของคุณคือ ".calage($birthday);
?>
|
 |
 |
 |
 |
Date :
2010-11-26 13:15:44 |
By :
ultrasiam |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันมีข้อผิดพลาดเรื่อง syntax การโค้ดดิ้งนิดหน่อยค่ะ ลองแก้ตามที่แจ้ง error ดู ไปทีละอัน เดี๋ยวก็ดีเอง ^_^
|
 |
 |
 |
 |
Date :
2010-11-26 13:38:12 |
By :
ultrasiam |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|