PHP - เปรียบเทียบวันที่ที่ผู้ใช้ป้อนกับ php date ()?

ฉันกำลังพยายามออกแบบฟังก์ชันการทำงานบางอย่างใน Wordpress ซึ่งผู้ใช้สามารถสร้าง "กิจกรรม" พร้อมวันที่ที่พวกเขาป้อน ซึ่งเป็นบางอย่างในรูปแบบ "MM/DD/YYYY" ฉันต้องการให้เก็บถาวรกิจกรรมหากวันที่ที่ป้อนอยู่หลังวันที่ปัจจุบัน ดังนั้นฉันจึงทำบางอย่างเช่น...

$date = get_post_meta( get_the_ID(), 'Date', true );
$todaysDate = date('n\/d\/Y');

if( $date < $todaysDate) {
    // do stuff
}

แน่นอนว่านี่ไม่ใช่วิธีที่ถูกต้องที่ฉันควรทำ แต่ฉันไม่แน่ใจจริงๆ ว่าวิธีที่ดีที่สุดในการจัดการวันที่ที่ป้อนเหล่านี้จะเป็นเช่นไร วิธีที่ฉันตั้งค่าไว้ในปัจจุบันใช้งานได้จริงอยู่บ้าง แต่เดือนตุลาคม (10) พฤศจิกายน (11) และธันวาคม (12) ทำให้เกิดการเปรียบเทียบ อะไรจะดีไปกว่านี้และถูกต้องในการดำเนินการเกี่ยวกับเรื่องนี้?


person la1ch3    schedule 21.05.2015    source แหล่งที่มา


คำตอบ (2)


ใช้ strtotime() เพื่อแยกวิเคราะห์คำอธิบายวันที่และเวลาที่เป็นข้อความภาษาอังกฤษลงในประทับเวลา Unix แล้วทำการเปรียบเทียบ

if (strtotime($date) < strtotime($todaysDate))
{
    // Do more stuff
person Vahid Hallaji    schedule 21.05.2015

เมื่อเปรียบเทียบวันที่จริงๆ แล้ว จะต้องอยู่ในรูปแบบเดียวกัน นี่คือตัวอย่างวิธีการแปลงวันที่จากฟิลด์เมตาเป็นรูปแบบ 'Y-m-d':

$date = date( 'Y-m-d', strtotime( get_post_meta( get_the_ID(), 'Date', true ) ) );
$today = date( 'Y-m-d' );

if ( $date < $today ) {
    var_dump( $date, $today );
}

ซึ่งสามารถทำได้ง่ายขึ้นหากวันที่ที่เป็นข้อความถูกแปลงเป็นเวลา Unix ด้วย strtotime():

if (  strtotime( get_post_meta( get_the_ID(), 'Date', true ) ) < strtotime( date( 'Y-m-d' ) ) ) {
    echo 'do stuff';
}
person Danijel    schedule 21.05.2015