|
|
|
อยู่ดีๆโค้ดกำหนดวันในการลงทะเบียนก็ใช้ไม่ได้อะคะ คือวันก่อนๆก็เปลี่ยนวันที่ |
|
|
|
|
|
|
|
คือวันก่อนๆก็เปลี่ยนวันที่ ในส่วนนี้ $inTheEnd = mktime(2009, 07, 30); เปลี่ยนได้ตลอดเลยแต่พอมาวันนี้
จะเปลี่ยนให้เลื่อนอายุการหมดวันปเป็นเดือนหน้าแบบ (2009, 08, 12); ยังงี้มันไม่ยอมเลยอะคะ
อย่างโค้ดที่ลงนี้จะเห็นว่าจะใส่เป็น (2009, 07, 32); มันกลับขึ้นหน้าselect.php แต่ใส่(2009, 08, 12); อย่างนี้ไม่ได้เลยไม่แน่ใจว่าตัวเองทำไรผิดรึป่าว งงมากเลยอะคะทุกวันก็แก้ไขได้
Code (PHP)
<?php
//กำหนดว่าวันที่เท่าไหร่ - เวลาเท่าไหร่ จะหมดสิทธิ์
date_default_timezone_set('Asia/Bangkok');
$inTheEnd = mktime(2009, 07, 32); //ปี, เดือน, วัน
//เวลาของคนลงทะเบียน
$nn = explode("-", date("Y-m-d"));
$registerTime = mktime($nn[0], $nn[1], $nn[2]);
// ที่เหลือก็กำหนดวิธีลงทะเบียน
if($registerTime >= $inTheEnd){
echo"ไม่อยู่ในช่วงเวลาในการสมัครสอบและเลือกวิชาที่จะใช้สอบ";
} else { include ('select.php');
}
?>
Tag : - - - -
|
|
|
|
|
|
Date :
2009-07-31 12:29:05 |
By :
beau1529 |
View :
861 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mktime(2009, 07, 32)
เดือนไหนมี 32 วันอะ
|
|
|
|
|
Date :
2009-07-31 13:41:18 |
By :
plakrim |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่ใส่mktime(2009, 07, 32) ยังงี้คือให้ดูอะคะว่าต้องใส่ยังงี้มันถึงจะทำตามเงื่อนไข
แต่ใส่ (2009, 08, 12); มันกลับไม่ได้อะคะ คือต้อการให้มันคิดว่าถ้าเกินวันนี้ก็ยังเปิดการเลือกวิชาได้
ตอนนี้เขียนว่า (2009, 08, 12) มันก็ไม่ไปหน้าอื่นให้กลับ
echo"ไม่อยู่ในช่วงเวลาในการสมัครสอบและเลือกวิชาที่จะใช้สอบ"; ซะงั้นอะคะ
|
|
|
|
|
Date :
2009-07-31 14:11:37 |
By :
beau1529 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใส่รูปแบบเต็มๆของ mktime ยังครับ
mktime(0, 0, 0, 2009, 07, 29)
|
|
|
|
|
Date :
2009-07-31 14:16:47 |
By :
zankumuro |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่ได้อะคะคุณ zankumuro หากใส่อย่างที่คุณบอกนี้ต้องเปลี่ยนส่วนอื่นๆด้วยใช่มั้ยคะให้เหมาะกับการ
รับค่ามันอะคะ
|
|
|
|
|
Date :
2009-07-31 14:23:30 |
By :
beau1529 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int mktime ( [int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst]]]]]]] )
สังเกต ข้อมูลที่ส่งเข้าฟังก์ชั่น นี้ ทุกตัวเป็นแบบ int หมดเลย
$inTheEnd = mktime(2009, 07, 32); //ปี, เดือน, วัน
07 ที่ส่งเข้าไป อยู่ในรูปแบบตัวเลข เมื่อมันเป้นตัวเลขอยู่แล้วฟังก์ชั่น จึงไม่แปลงค่านั้นอีก ทำให้ค่าที่ฟังก์ชั่นเอาไปใช้ คือ 0 (เลขตัวแรก เพราะขึ้นต้นด้วย 0)
เอ งั้นแล้วทำไม
$registerTime = mktime($nn[0], $nn[1], $nn[2]);
ถึงใช้งานได้ล่ะ
เพราะว่า เมื่อส่งข้อมูลเข้าฟังก์ชั่น แบบ สตริง แต่ฟังก์ชั่นต้องการแบบ int โปรแกรมภาษาอื่นๆ อาจจะเกิด exception แต่ php ไม่เกิด เพราะมันฉลาด (ฮ่าๆ) มันแปลงค่าที่ส่งเข้ามาให้เป็น int (โดย intval("string");)
ถ้าแปลงไม่ได้ถึงจะเกิด exception ที่นี้ intval("0x") = x
ดังนั้น ต้องแก้ไข
$inTheEnd = mktime(2009, 07, 32); //ปี, เดือน, วัน
ให้เป็น
$inTheEnd = mktime("2009", "07", "32"); //ปี, เดือน, วัน
หรือ
$inTheEnd = mktime(2009, 7, 32); //ปี, เดือน, วัน
|
|
|
|
|
Date :
2009-07-31 14:56:21 |
By :
lozomac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองทำตามแบบที่คุณ lozomac บอกใช้ได้เลยคะ แต่ก็งงนะคะอยู่ดีๆมันก็เป็นฮ่าๆๆ
ตกใจเลยกำลังทำโปรเจคอยู่ดีๆนึกว่าต้องแก้เยอะซะแล้วขอบคุณมากค่ะ
ของโบเปลี่ยนตามแบบที่หนึ่งที่คุณ lozomac บอกอะคะ
Code (PHP)
<?php
//กำหนดว่าวันที่เท่าไหร่ - เวลาเท่าไหร่ จะหมดสิทธิ์
date_default_timezone_set('Asia/Bangkok');
$inTheEnd = mktime("2009", "08","01" ); //ปี, เดือน, วัน
//เวลาของคนลงทะเบียน
$nn = explode("-", date("Y-m-d"));
$registerTime = mktime($nn[0], $nn[1], $nn[2]);
// ที่เหลือก็กำหนดวิธีลงทะเบียน
if($registerTime >= $inTheEnd){
echo"ไม่อยู่ในช่วงเวลาในการสมัครสอบและเลือกวิชาที่จะใช้สอบ";
} else { include ('select.php');
}
?>
|
|
|
|
|
Date :
2009-07-31 19:11:56 |
By :
beau1529 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|