ผมไม่รู้ว่ามีการเก็บ Log เวลาเลื่อนประกาศรึป่าว หมายถึงเวลากดเลื่อนประกาศก็บันทึกในตารางไป 1 ครั้งอันนี้ จะง่ายสุดและแม่นยำสุด
ว่าแต่มีรายละเอียดที่มากกว่านี้ไหมครับ บอกแค่นี้ผมไม่อาจจะแนะนำหรือช่วยได้เบย
ผมว่าเก็บวันเวลาปัจจุบันในการกดครับ จากนั้นให้เช็คว่าเวลาล่าสุดในการกดกับเวลาในตอนนี้หา่างกันเท่าไหร่หากเกิน 8 ก็ให้เลื่อนได้ หากไม่เกินก็ยังเลื่อนไม่ได้ครับ

แบบนี้เราจะรู้แค่ครั้งล่าสุด อีกอย่างเอามาดัดแปลงเพิ่มเติมยาก
หากข้อกำหนด คือคุณจะกดได้ 3 ครั้งต่อวันในช่วงเวลา 24 ชั่วโมง คุณกดแล้วก็กดต่อได้เลย แบบที่คุณบอกมันจะทำไม่ได้
อีกอย่างถ้าเก็บแบบนั้นเราแค่ COUNT ใน MySQL ตามเวลาที่อยากได้เช่น 15 Min / 20 Min หรือจะเป็นวันก็ได้ โดยไม่ต้องไปยุ่งยากแก้โค้ดให้วุ่นวาย