我试图在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';
}