|
|
|
ข่าวประชาสัมพันธ์ให้แสดงคำว่า ข่าวไหม เพียง 2 อาทิตย์นับจากวันที่ลงประกาศ ต้องทำยังไงค่ะ ??? |
|
|
|
|
|
|
|
ในฐานข้อมูลก็เก็บ หนึ่งฟิวล์ เป็น วันที่เพิ่มข่าว
หน้าแสดงเมื่อดึงจากฐานข้อมูลก็นำค่าที่ได้จากฟิวล์ วันที่เพิ่มข่าว มาหักลบกับวันที่ปัจจุบัน
หากยังไม่เกิน 2 วันก็เป็น ข่าวใหม่
คำสั่ง php น่าจะ datediff หน่ะครับ
|
|
|
|
|
Date :
2012-09-21 09:57:03 |
By :
ความรู้เท่าหางอึ่ง |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ข่าวไหม หรือ ข่าวใหม่ อ่ะครับ (คนเป็นข่าวใหม่เน๊าะ อิอิ)
ข้อมูลข่าวที่บันทึก มีการเก็บ วันเดือนปี หรือเปล่าครับ ถ้าเก็บฟิลด์ควรเป็นแบบ datetime นะครับจะทำได้ง่าย
เริ่มเลยนะ....
1.กำหนดวันเดือนปีที่เป็นปัจจุบันก่อนเพื่อเอาไว้เปรียบเทียบ
$today_present=date("Y-m-d");
2.สร้างฟังก์ชั่นสำหับการลบ วันเดือนปี โดยฟังก์ชั่ยนี้เรียกว่า datediff ในบทความนี้ครับ Go to : PHP DateDiff / TimeDiff ผมเลือกเอาการลบเฉพาะวันมาใช้
function DateDiff($strDate1,$strDate2)
{
return (strtotime($strDate2) - strtotime($strDate1))/ ( 60 * 60 * 24 ); // 1 day = 60*60*24
}
จะเห็นว่ามีตัวแปร $strDate1 กับ $strDate2 เพิ่มขึ้นมานะครับ
3. ที่กล่าวมาแล้วคือ ถ้าฐานข้อมูลข่าวมีการบันทึกวันเดือนปีในการเก็บ เป็นฟิลด์ datetime ก็ดึงมาใช้ครับ
โดยสมมุติว่า ถ้าดึงข้อมูลมาแสดงโดยใช้ while($array = mysql_fetch_array($sqlquery)) ก็จะมีเวลาหน้าตาประมาณ
$today_old=$array['datenews'];
4. จับค่าตัวแปรทั้ง 2 ใส่ไปในฟังก์ชั่น หรือ เรียกใช้ฟังก์ชั่น function DateDiff นั่นเอง
$diffTime=DateDiff("".$today_old."","". $today_present."");
5. จากนั้นใช้ if esle มาช่วย
if($diffTime<14)//ถ้าวันที่บันทึกข่าว มีค่าน้อยกว่า 14 วัน
{ echo "ข่าวใหม่"; //ตรงนี้จะใส่รูป gif ก็ได้ครับ
}else{
echo " <br>";} //ถ้าวันที่บันทึกข่าวเป็นเงื่อนไขอื่น หรือมากกว่า 14 วัน ก็ echo ค่าว่าง
ลองเอาไปเรียบเรียงประยุกต์เอานะครับ
ปล.ของจริงมีแต่อยากให้คิดแล้วลองทำดู สุ้ ๆ ครับ
|
|
|
|
|
Date :
2012-09-21 10:04:28 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หรือจะเขียนบน MySQL ง่าย ๆ ครับ (อันนีี้สำหรับ Show อย่างเดียว)
Code (PHP)
$strSQL = " SELECT * FROM table WHERE CreateDate > DATE_ADD(NOW(),INTERVAL -2 WEEK) ";
Go to : SQL MYSQL DATE_ADD()
|
|
|
|
|
Date :
2012-09-21 10:52:09 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|