如何检查日期是否为今天';s使用PHP的日期


How to check if date is today's date with PHP

比方说,我有4个日期,今天的日期是2016年1月7日:

1/7/16 1:06:02
1/7/16 8:01:24
1/8/16 7:02:23
1/6/16 3:12:34

如何只能选择1/7/16 1:06:021/7/16 8:01:24

PHP中的哪个日期函数只能用于获取今天的日期?

谢谢!

更新:

这被用作MYSQL选择器。

示例:$db->query("DELETE * FROM entry WHERE date='$today'");

这是怎么回事?如何让我的MYSQL查询只选择今天的日期?

更新2:我尝试过使用curdate(),但代码不起作用。。。这就是我正在做的:

$db->query("DELETE * FROM entry WHERE date=curdate()"); 

我做错了什么

上次更新:curdate()工作正常。。。

UPDATE:作为MySQL查询,您可以按如下方式执行:

$db->query("DELETE * FROM entry WHERE DATE(date) = CURDATE()");

CURDATE()返回今天的日期。

如果您想使用php,请参阅下面使用DateTime类。

$now = new DateTime;
$otherDate = new DateTime('2016-01-01'); // or e.g. 2016-01-01 21:00:02
// Setting the time to 0 will ensure the difference is measured only in days
$now->setTime( 0, 0, 0 );
$otherDate->setTime( 0, 0, 0 );
var_dump($now->diff($otherDate)->days === 0); // Today
var_dump($now->diff($otherDate)->days === -1); // Yesterday
var_dump($now->diff($otherDate)->days === 1); // Tomorrow

schellingerht的答案是完全正确的,但

$now = new DateTime;

应该是这样的:

$now = new DateTime('Today');

这将确保选择从今天起0小时0分钟的日期。否则,即使日期是明天,输出也可能是Today。希望能有所帮助!

转换为时间戳,然后只格式化日期。然后与今天日期的相同格式进行比较:

var_dump(
         date('Ymd', strtotime('1/7/16 1:06:02')) === date('Ymd')
);

尝试使用DATE()(http://www.w3schools.com/sql/func_date.asp)。您不需要将日期转换为字符串,这样效率不高。

DELETE FROM yourTable WHERE DATE(yourDateField) = DATE(NOW) 

您可以将今天的日期与Y-m-d格式进行比较,并使用相同的格式解析日期。

$today = date('Y-m-d');
$otherdate = date('Y-m-d', strtotime('2022-02-02 16:00:26'));
if($today === $otherdate){
   '' your code for Today
} else {
   '' your code for not Today
}