我正在尝试在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)的几个月对比较产生了影响。什么是更好,更正确的方法呢?
答案 0 :(得分:0)
使用strtotime()将任何英文文本日期时间描述解析为Unix时间戳。然后进行比较。
if (strtotime($date) < strtotime($todaysDate))
{
// Do more stuff
答案 1 :(得分:0)
从字面上比较日期时,它们必须采用相同的格式。以下是如何将日期从元字段转换为'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';
}