Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP检查日期是否为今天的日期_Php_Date - Fatal编程技术网

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

如何使用PHP检查日期是否为今天的日期,php,date,Php,Date,比如说,我有4个日期,今天的日期是2016年7月1日: 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:02和1/7/16 8:01:24 我可以使用PHP中的哪个日期函数只获取今天的日期 谢谢 更新: 这被用作MYSQL选择器 示例:$db->queryDELETE*FROM条目,其中日期=“$today” 这是怎么回事?如何让MYSQL查询只选择今天的日期 更新2: 我尝试过使

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

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:02和1/7/16 8:01:24

我可以使用PHP中的哪个日期函数只获取今天的日期

谢谢

更新:

这被用作MYSQL选择器

示例:$db->queryDELETE*FROM条目,其中日期=“$today”

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

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

$db->query("DELETE * FROM entry WHERE date=curdate()"); 
我做错了什么


上次更新:curdate工作正常…

转换为时间戳,然后仅为日期设置格式。然后与相同格式的“今日日期”进行比较:

var_dump(
         date('Ymd', strtotime('1/7/16 1:06:02')) === date('Ymd')
);
更新:作为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
尝试使用日期。您不需要将日期转换为字符串-这是没有效率的

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

谢林格特的回答完全正确,但是

$now = new DateTime;
应该是这样的:

$now = new DateTime('Today');
这将确保选择从今天起0小时0分钟的日期。否则,即使日期是明天,输出也可能是今天。
希望有帮助

Ypu可以使用date函数。其中date=curdate?date\U格式没有意义。它需要一个日期/日期时间作为输入,因此将一个日期格式化为字符串,然后与另一个日期进行比较只会浪费CPU周期。其中datedatefield=curdate更好,如果datefield已经是一个日期,那么即使只是一个简单的datefield=curdate也可以。感谢Marc提供更简洁的选择。PHP代码将检查日期是否在最近24小时内,而不是今天!我在2018年12月11日对它进行了测试,结果是错误的:$now=new DateTime$otherDate=新日期时间'2018-12-12 01:00:59';//对于“明天”变量dump$now->diff$otherDate->days==0;//正确,错误的var_dump$now->diff$otherDate->days===-1;//FALSE var_dump$now->diff$otherDate->days==1;//错,错