PHP -比较用户输入的日期与PHP date()


PHP - comparing user-inputted dates with 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月(10月)、11月(11月)和12月(12月)的月份不利于比较。有什么更好、正确的方法来做这件事呢?

使用strtotime()将任何英文文本日期时间描述解析为Unix时间戳。然后做比较。

if (strtotime($date) < strtotime($todaysDate))
{
    // Do more stuff

在逐字比较日期时,它们必须采用相同的格式。下面是一个如何将日期从元字段转换为'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 );
}

如果使用strtotime()将文本日期转换为Unix时间戳,则可以更轻松地完成此操作:

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