匿名用户
首先。您在使用函数时出错请参阅PHP文档int strtotime ( string $time [, int $now = time() ] )
您需要修改您的代码来将整数时间戳传递到这个函数中。
其次。您使用包含时间部分的格式D.M.Y H:I。如果您只希望比较日期,则必须删除时间部分,例如:date=date(D.M.Y)`
第三。我不确定它是否以同样的方式工作于您,但是我的PHP不理解中的日期格式,并将01.01.1970 02:00返回到中$timestamp = "2014.09.02T13:34";
date('d.m.Y H:i', strtotime($timestamp)) === "01.01.1970 02:00";
您需要检查是否返回正确的日期字符串。如果否,则需要指定变量中使用的格式。您可以使用函数或dateTime::CreateFromFormat之一来执行此操作
这是一个工作示例:$timestamp = "2014.09.02T13:34";
$today = new DateTime(); // This object represents current date/time
$today->setTime( 0, 0, 0 ); // reset time part, to prevent partial comparison
$match_date = DateTime::createFromFormat( "Y.m.d\\TH:i", $timestamp );
$match_date->setTime( 0, 0, 0 ); // reset time part, to prevent partial comparison
$diff = $today->diff( $match_date );
$diffDays = (integer)$diff->format( "%R%a" ); // Extract days count in interval
switch( $diffDays ) {
case 0:
echo "//Today";
break;
case -1:
echo "//Yesterday";
break;
case +1:
echo "//Tomorrow";
break;
default:
echo "//Sometime";
}