第一。您在使用函数时有错误,请参阅PHP文档strtotime
int strtotime ( string $time [, int $now = time() ] )
您需要修改代码以将整数时间戳传递到此函数中。
第二。您使用包含时间部分的格式 d.m.Y H:i。如果您只想比较日期,则必须删除时间部分,例如'$date = date(“d.m.Y”);''
第三。我不确定它是否以相同的方式为您工作,但我的PHP不理解日期格式,并将01.01.1970 02:00返回$timestamp
$match_date
$timestamp = "2014.09.02T13:34";
date('d.m.Y H:i', strtotime($timestamp)) === "01.01.1970 02:00";
您需要检查是否返回正确的日期字符串。如果不是,则需要指定变量中使用的格式。您可以使用date_parse_from_format
或 DateTime::createFromFormat 中的函数之一来执行此操作。strtotime($timestamp)
$timestamp
这是一个工作示例:
$timestamp = "2014.09.02T13:34";
$today = new DateTime("today"); // This object represents current date/time with time set to midnight
$match_date = DateTime::createFromFormat( "Y.m.d\\TH:i", $timestamp );
$match_date->setTime( 0, 0, 0 ); // set time part to midnight, in order 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";
}